Move to /system/priv-app instead of /system/app when api level >= 19
[fonbot.git] / src / ro / ieval / fonbot / FonBotPreferenceActivity.java
index 848a4369aa8a530e688e0fe643724326733a702e..eae2b0f714acf1e6a49b8afe882e11412393c5ad 100644 (file)
@@ -10,6 +10,7 @@ import android.content.Intent;
 import android.content.pm.ApplicationInfo;
 import android.os.Bundle;
 import android.preference.CheckBoxPreference;
+import android.preference.EditTextPreference;
 import android.preference.Preference;
 import android.preference.Preference.OnPreferenceChangeListener;
 import android.preference.PreferenceActivity;
@@ -105,17 +106,19 @@ public final class FonBotPreferenceActivity extends PreferenceActivity {
                                        return true;
 
                                try {
+                                       final String privapp = android.os.Build.VERSION.SDK_INT < 19 ? "app" : "priv-app";
                                        final String remountCommand="mount -o remount,rw /system";
-                                       final String copyToSystemCommand="cp "+info.sourceDir+" /system/app/FonBot.apk";
-                                       final String chmodSystemCommand="chmod 644 /system/app/FonBot.apk";
+                                       final String copyToSystemCommand="cp "+info.sourceDir+" /system/" + privapp + "/FonBot.apk";
+                                       final String chmodSystemCommand="chmod 644 /system/" + privapp + "/FonBot.apk";
+                                       final String rmSystemCommand="rm /system/" + privapp + "/FonBot.apk";
                                        final String copyToUserCommand="cp "+info.sourceDir+" /data/app/FonBot.apk";
                                        final String chmodUserCommand="chmod 644 /data/app/FonBot.apk";
-                                       final String rmCommand="rm "+info.sourceDir;
+                                       final String rmUserCommand="rm "+info.sourceDir;
 
                                        if(isChecked){
                                                Runtime.getRuntime().exec(new String[]{
                                                                "su", "-c",
-                                                               remountCommand+';'+copyToSystemCommand+';'+chmodSystemCommand+';'+rmCommand
+                                                               remountCommand+';'+copyToSystemCommand+';'+chmodSystemCommand+';'+rmUserCommand
                                                }).waitFor();
 
                                                Toast.makeText(FonBotPreferenceActivity.this,
@@ -123,9 +126,8 @@ public final class FonBotPreferenceActivity extends PreferenceActivity {
                                        } else {
                                                Runtime.getRuntime().exec(new String[]{
                                                                "su", "-c",
-                                                               remountCommand+';'+copyToUserCommand+';'+chmodUserCommand+';'+rmCommand 
+                                                               remountCommand+';'+copyToUserCommand+';'+chmodUserCommand+';'+rmSystemCommand
                                                }).waitFor();
-
                                                Toast.makeText(FonBotPreferenceActivity.this,
                                                                "Reboot to make FonBot a non-system application", Toast.LENGTH_LONG).show();
                                        }
@@ -137,6 +139,50 @@ public final class FonBotPreferenceActivity extends PreferenceActivity {
                                return true;
                        }
                });
+
+               final EditTextPreference protocolPreference=(EditTextPreference) findPreference("protocol");
+               protocolPreference.setSummary(protocolPreference.getText());
+               protocolPreference.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
+                       @Override
+                       public boolean onPreferenceChange(final @Nullable Preference preference, final @Nullable Object newValue) {
+                               if(newValue==null)
+                                       return false;
+
+                               protocolPreference.setSummary(newValue.toString());
+                               return true;
+                       }
+               });
+
+               final EditTextPreference hostnamePreference=(EditTextPreference) findPreference("hostname");
+               hostnamePreference.setSummary(hostnamePreference.getText());
+               hostnamePreference.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
+                       @Override
+                       public boolean onPreferenceChange(final @Nullable Preference preference, final @Nullable Object newValue) {
+                               if(newValue==null)
+                                       return false;
+
+                               hostnamePreference.setSummary(newValue.toString());
+                               return true;
+                       }
+               });
+
+               final EditTextPreference portPreference=(EditTextPreference) findPreference("port");
+               portPreference.setSummary(portPreference.getText());
+               portPreference.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
+                       @Override
+                       public boolean onPreferenceChange(final @Nullable Preference preference, final @Nullable Object newValue) {
+                               if(newValue==null)
+                                       return false;
+
+                               try{
+                                       Integer.parseInt(newValue.toString());
+                               } catch (NumberFormatException e){
+                                       return false;
+                               }
+                               portPreference.setSummary(newValue.toString());
+                               return true;
+                       }
+               });
        }
 
        @Override
This page took 0.011691 seconds and 4 git commands to generate.