diff options
author | Andrew Dolgov <[email protected]> | 2015-06-02 11:05:27 +0400 |
---|---|---|
committer | Andrew Dolgov <[email protected]> | 2015-06-02 11:05:27 +0400 |
commit | 3de302182cdb3b99600cd787fd697e9e8e401bd2 (patch) | |
tree | 0a1bcd84006562974f622811f8d7e1353615e74c | |
parent | 5e2cfd1b2a5dba4e536a9aa6701b37db9f3033af (diff) |
switch to preferencefragment
4 files changed, 100 insertions, 33 deletions
diff --git a/org.fox.ttrss/src/main/AndroidManifest.xml b/org.fox.ttrss/src/main/AndroidManifest.xml index 5c94cf94..3eda069a 100755 --- a/org.fox.ttrss/src/main/AndroidManifest.xml +++ b/org.fox.ttrss/src/main/AndroidManifest.xml @@ -1,8 +1,8 @@ <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="org.fox.ttrss" - android:versionCode="332" - android:versionName="1.106" > + android:versionCode="333" + android:versionName="1.107" > <uses-sdk android:minSdkVersion="15" diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/PreferencesActivity.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/PreferencesActivity.java index 5a741e27..be2e35a0 100755 --- a/org.fox.ttrss/src/main/java/org/fox/ttrss/PreferencesActivity.java +++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/PreferencesActivity.java @@ -5,6 +5,10 @@ import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.os.Bundle; import android.preference.PreferenceActivity; +import android.preference.PreferenceManager; +import android.support.v4.app.FragmentTransaction; +import android.util.Log; +import android.view.MenuItem; import java.io.IOException; import java.text.SimpleDateFormat; @@ -12,46 +16,37 @@ import java.util.Locale; import java.util.zip.ZipEntry; import java.util.zip.ZipFile; -public class PreferencesActivity extends PreferenceActivity { +public class PreferencesActivity extends CommonActivity { @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - - addPreferencesFromResource(R.xml.preferences); - - /* if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.JELLY_BEAN) { - findPreference("enable_condensed_fonts").setEnabled(false); - } */ + public void onCreate(Bundle savedInstanceState) { + // we use that before parent onCreate so let's init locally + m_prefs = PreferenceManager + .getDefaultSharedPreferences(getApplicationContext()); - String version = "?"; - int versionCode = -1; - String buildTimestamp = "N/A"; + setAppTheme(m_prefs); - try { - PackageInfo packageInfo = getPackageManager(). - getPackageInfo(getPackageName(), 0); + super.onCreate(savedInstanceState); - version = packageInfo.versionName; - versionCode = packageInfo.versionCode; + setContentView(R.layout.preferences); - ApplicationInfo appInfo = getPackageManager(). - getApplicationInfo(getPackageName(), 0); + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + getSupportActionBar().setHomeButtonEnabled(true); - ZipFile zf = new ZipFile(appInfo.sourceDir); - ZipEntry ze = zf.getEntry("classes.dex"); - long time = ze.getTime(); + android.app.FragmentTransaction ft = getFragmentManager().beginTransaction(); - buildTimestamp = new SimpleDateFormat("yyyy.MM.dd HH:mm:ss", - Locale.getDefault()).format(time); + ft.replace(R.id.preferences_container, new PreferencesFragment()); + ft.commit(); + } - } catch (PackageManager.NameNotFoundException e) { - e.printStackTrace(); - } catch (IOException e) { - e.printStackTrace(); + @Override + public boolean onOptionsItemSelected(MenuItem item) { + switch (item.getItemId()) { + case android.R.id.home: + onBackPressed(); + return true; + default: + return super.onOptionsItemSelected(item); } - - findPreference("version").setSummary(getString(R.string.prefs_version, version, versionCode)); - findPreference("build_timestamp").setSummary(getString(R.string.prefs_build_timestamp, buildTimestamp)); } } diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/PreferencesFragment.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/PreferencesFragment.java new file mode 100644 index 00000000..046ee6f0 --- /dev/null +++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/PreferencesFragment.java @@ -0,0 +1,64 @@ +package org.fox.ttrss; + +import android.app.Activity; +import android.content.pm.ApplicationInfo; +import android.content.pm.PackageInfo; +import android.content.pm.PackageManager; +import android.os.Bundle; +import android.preference.PreferenceFragment; + +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.Locale; +import java.util.zip.ZipEntry; +import java.util.zip.ZipFile; + +public class PreferencesFragment extends PreferenceFragment { + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + // Load the preferences from an XML resource + addPreferencesFromResource(R.xml.preferences); + + } + + public void onResume() { + super.onResume(); + + String version = "?"; + int versionCode = -1; + String buildTimestamp = "N/A"; + + try { + Activity activity = getActivity(); + + PackageInfo packageInfo = activity.getPackageManager(). + getPackageInfo(activity.getPackageName(), 0); + + version = packageInfo.versionName; + versionCode = packageInfo.versionCode; + + ApplicationInfo appInfo = activity.getPackageManager(). + getApplicationInfo(activity.getPackageName(), 0); + + ZipFile zf = new ZipFile(appInfo.sourceDir); + ZipEntry ze = zf.getEntry("classes.dex"); + long time = ze.getTime(); + + buildTimestamp = new SimpleDateFormat("yyyy.MM.dd HH:mm:ss", + Locale.getDefault()).format(time); + + + findPreference("version").setSummary(getString(R.string.prefs_version, version, versionCode)); + findPreference("build_timestamp").setSummary(getString(R.string.prefs_build_timestamp, buildTimestamp)); + + } catch (PackageManager.NameNotFoundException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + + } +}
\ No newline at end of file diff --git a/org.fox.ttrss/src/main/res/layout/preferences.xml b/org.fox.ttrss/src/main/res/layout/preferences.xml new file mode 100644 index 00000000..e68fa9e4 --- /dev/null +++ b/org.fox.ttrss/src/main/res/layout/preferences.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="utf-8"?> +<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:id="@+id/preferences_container" + android:fitsSystemWindows="true" + android:layout_width="match_parent" + android:layout_height="match_parent"> + +</FrameLayout>
\ No newline at end of file |