فهرست منبع

Starting preferences

inorichi 9 سال پیش
والد
کامیت
985d71a869

+ 5 - 0
app/src/main/AndroidManifest.xml

@@ -37,6 +37,11 @@
                 android:name="android.support.PARENT_ACTIVITY"
                 android:value="eu.kanade.mangafeed.ui.activity.MangaDetailActivity" />
         </activity>
+        <activity
+            android:name=".ui.activity.SettingsActivity"
+            android:label="@string/title_activity_settings"
+            android:parentActivityName=".ui.activity.MainActivity" >
+        </activity>
     </application>
 
 </manifest>

+ 9 - 9
app/src/main/java/eu/kanade/mangafeed/data/helpers/PreferencesHelper.java

@@ -2,28 +2,28 @@ package eu.kanade.mangafeed.data.helpers;
 
 import android.content.Context;
 import android.content.SharedPreferences;
+import android.preference.PreferenceManager;
+
+import eu.kanade.mangafeed.R;
 
 public class PreferencesHelper {
 
     private static SharedPreferences mPref;
 
-    public static final String PREF_FILE_NAME = "android_boilerplate_pref_file";
-
+    private static final String PREF_HIDE_STATUS_BAR = "hide_status_bar";
 
     public PreferencesHelper(Context context) {
-        mPref = context.getSharedPreferences(PREF_FILE_NAME, Context.MODE_PRIVATE);
+        PreferenceManager.setDefaultValues(context, R.xml.preferences, false);
+
+        mPref = PreferenceManager.getDefaultSharedPreferences(context);
     }
 
     public void clear() {
         mPref.edit().clear().apply();
     }
 
-    public boolean isFirstRun() {
-        return mPref.getBoolean("firstrun", true);
-    }
-
-    public void setNotFirstRun() {
-        mPref.edit().putBoolean("firstrun", false).commit();
+    public boolean hideStatusBarSet() {
+        return mPref.getBoolean(PREF_HIDE_STATUS_BAR, false);
     }
 
 }

+ 9 - 0
app/src/main/java/eu/kanade/mangafeed/presenter/ReaderPresenter.java

@@ -4,7 +4,10 @@ import android.os.Bundle;
 
 import java.util.List;
 
+import javax.inject.Inject;
+
 import de.greenrobot.event.EventBus;
+import eu.kanade.mangafeed.data.helpers.PreferencesHelper;
 import eu.kanade.mangafeed.data.models.Chapter;
 import eu.kanade.mangafeed.data.models.Page;
 import eu.kanade.mangafeed.sources.Source;
@@ -18,6 +21,8 @@ import rx.schedulers.Schedulers;
 
 public class ReaderPresenter extends BasePresenter<ReaderActivity> {
 
+    @Inject PreferencesHelper prefs;
+
     private Source source;
     private Chapter chapter;
     private List<Page> pageList;
@@ -52,6 +57,10 @@ public class ReaderPresenter extends BasePresenter<ReaderActivity> {
     protected void onTakeView(ReaderActivity view) {
         super.onTakeView(view);
         registerForStickyEvents();
+
+        if (prefs.hideStatusBarSet()) {
+            view.hideStatusBar();
+        }
     }
 
     @Override

+ 3 - 1
app/src/main/java/eu/kanade/mangafeed/ui/activity/MainActivity.java

@@ -1,5 +1,6 @@
 package eu.kanade.mangafeed.ui.activity;
 
+import android.content.Intent;
 import android.os.Bundle;
 import android.support.v4.app.Fragment;
 import android.support.v4.app.FragmentTransaction;
@@ -16,7 +17,6 @@ import eu.kanade.mangafeed.R;
 import eu.kanade.mangafeed.ui.activity.base.BaseActivity;
 import eu.kanade.mangafeed.ui.fragment.LibraryFragment;
 import eu.kanade.mangafeed.ui.fragment.SourceFragment;
-import nucleus.factory.RequiresPresenter;
 
 public class MainActivity extends BaseActivity {
 
@@ -54,6 +54,7 @@ public class MainActivity extends BaseActivity {
                         new PrimaryDrawerItem()
                                 .withName(R.string.settings_title)
                                 .withIdentifier(R.id.nav_drawer_settings)
+                                .withSelectable(false)
                 )
                 .withSavedInstance(savedInstanceState)
                 .withOnDrawerItemClickListener(
@@ -70,6 +71,7 @@ public class MainActivity extends BaseActivity {
                                         setFragment(SourceFragment.newInstance());
                                         break;
                                     case R.id.nav_drawer_settings:
+                                        startActivity(new Intent(this, SettingsActivity.class));
                                         break;
                                 }
                             }

+ 15 - 0
app/src/main/java/eu/kanade/mangafeed/ui/activity/ReaderActivity.java

@@ -2,8 +2,11 @@ package eu.kanade.mangafeed.ui.activity;
 
 import android.content.Context;
 import android.content.Intent;
+import android.os.Build;
 import android.os.Bundle;
 import android.support.v4.view.ViewPager;
+import android.view.View;
+import android.view.WindowManager;
 import android.widget.TextView;
 
 import java.util.List;
@@ -89,4 +92,16 @@ public class ReaderActivity extends BaseRxActivity<ReaderPresenter> {
         String page = (currentPage+1) + "/" + adapter.getCount();
         pageNumber.setText(page);
     }
+
+    public void hideStatusBar() {
+        if (Build.VERSION.SDK_INT < 16) {
+            getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
+                    WindowManager.LayoutParams.FLAG_FULLSCREEN);
+        } else {
+            View decorView = getWindow().getDecorView();
+            int uiOptions = View.SYSTEM_UI_FLAG_FULLSCREEN;
+            decorView.setSystemUiVisibility(uiOptions);
+        }
+
+    }
 }

+ 36 - 0
app/src/main/java/eu/kanade/mangafeed/ui/activity/SettingsActivity.java

@@ -0,0 +1,36 @@
+package eu.kanade.mangafeed.ui.activity;
+
+import android.os.Bundle;
+import android.preference.PreferenceFragment;
+import android.support.v7.widget.Toolbar;
+
+import butterknife.Bind;
+import butterknife.ButterKnife;
+import eu.kanade.mangafeed.R;
+import eu.kanade.mangafeed.ui.activity.base.BaseActivity;
+
+public class SettingsActivity extends BaseActivity {
+
+    @Bind(R.id.toolbar) Toolbar toolbar;
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_preferences);
+        ButterKnife.bind(this);
+
+        setupToolbar(toolbar);
+
+        getFragmentManager().beginTransaction().replace(R.id.settings_content,
+                new MyPreferenceFragment()).commit();
+    }
+
+    public static class MyPreferenceFragment extends PreferenceFragment {
+        @Override
+        public void onCreate(final Bundle savedInstanceState) {
+            super.onCreate(savedInstanceState);
+            addPreferencesFromResource(R.xml.preferences);
+        }
+    }
+
+}

+ 0 - 6
app/src/main/java/eu/kanade/mangafeed/ui/activity/base/BaseActivity.java

@@ -1,15 +1,9 @@
 package eu.kanade.mangafeed.ui.activity.base;
 
 import android.content.Context;
-import android.os.Bundle;
 import android.support.v7.app.AppCompatActivity;
 import android.support.v7.widget.Toolbar;
 
-import eu.kanade.mangafeed.App;
-import nucleus.factory.PresenterFactory;
-import nucleus.presenter.Presenter;
-import nucleus.view.NucleusAppCompatActivity;
-
 public class BaseActivity extends AppCompatActivity {
 
     protected void setupToolbar(Toolbar toolbar) {

+ 0 - 1
app/src/main/java/eu/kanade/mangafeed/ui/fragment/base/BaseRxFragment.java

@@ -1,7 +1,6 @@
 package eu.kanade.mangafeed.ui.fragment.base;
 
 import android.os.Bundle;
-import android.support.v4.app.Fragment;
 
 import eu.kanade.mangafeed.App;
 import nucleus.factory.PresenterFactory;

+ 17 - 0
app/src/main/res/layout/activity_preferences.xml

@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:orientation="vertical" android:layout_width="match_parent"
+    android:layout_height="match_parent">
+
+    <include
+        android:id="@+id/toolbar"
+        layout="@layout/toolbar"/>
+
+    <FrameLayout
+        android:id="@+id/settings_content"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent">
+
+    </FrameLayout>
+
+</LinearLayout>

+ 3 - 0
app/src/main/res/values/strings.xml

@@ -46,5 +46,8 @@
     <string name="manga_detail_tab">Info</string>
     <string name="manga_chapters_tab">Chapters</string>
     <string name="title_activity_viewer">ViewerActivity</string>
+    <string name="title_activity_settings">Settings</string>
+    <string name="pref_hide_status_bar">Hide status bar</string>
+    <string name="pref_hide_status_bar_summary">This option will hide the status bar while reading</string>
 
 </resources>

+ 9 - 0
app/src/main/res/xml/preferences.xml

@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <CheckBoxPreference android:title="@string/pref_hide_status_bar"
+        android:defaultValue="false"
+        android:summary="@string/pref_hide_status_bar_summary"
+        android:key="hide_status_bar" />
+
+</PreferenceScreen>