Added pass settings

captchafix
Florens Douwes 11 years ago
parent 9ab573c879
commit ae54ec6ae3
  1. 10
      Chan/AndroidManifest.xml
  2. 29
      Chan/res/layout/preference_pass.xml
  3. 2
      Chan/res/menu/action_bar_switch.xml
  4. 5
      Chan/res/values/strings.xml
  5. 8
      Chan/res/xml/preference.xml
  6. 10
      Chan/res/xml/preference_pass.xml
  7. 10
      Chan/src/org/floens/chan/core/ChanPreferences.java
  8. 105
      Chan/src/org/floens/chan/ui/activity/PassSettingsActivity.java
  9. 4
      Chan/src/org/floens/chan/ui/activity/WatchSettingsActivity.java

@ -83,6 +83,14 @@
android:name="android.support.PARENT_ACTIVITY" android:name="android.support.PARENT_ACTIVITY"
android:value="org.floens.chan.ui.activity.BoardActivity" /> android:value="org.floens.chan.ui.activity.BoardActivity" />
</activity> </activity>
<activity
android:name="org.floens.chan.ui.activity.PassSettingsActivity"
android:label="@string/preference_pass_settings"
android:parentActivityName="org.floens.chan.ui.activity.BoardActivity" >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="org.floens.chan.ui.activity.BoardActivity" />
</activity>
<activity <activity
android:name="org.floens.chan.ui.activity.AboutActivity" android:name="org.floens.chan.ui.activity.AboutActivity"
android:label="@string/preference_about" android:label="@string/preference_about"
@ -93,8 +101,8 @@
</activity> </activity>
<activity <activity
android:name="org.floens.chan.ui.activity.BoardEditor" android:name="org.floens.chan.ui.activity.BoardEditor"
android:label="@string/board_edit"
android:configChanges="keyboardHidden|orientation|screenSize" android:configChanges="keyboardHidden|orientation|screenSize"
android:label="@string/board_edit"
android:parentActivityName="org.floens.chan.ui.activity.BoardActivity" > android:parentActivityName="org.floens.chan.ui.activity.BoardActivity" >
<meta-data <meta-data
android:name="android.support.PARENT_ACTIVITY" android:name="android.support.PARENT_ACTIVITY"

@ -0,0 +1,29 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center" >
<TextView
android:id="@+id/pass_info"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:paddingTop="16dp"
android:text="@string/pass_info_text"
android:textSize="24sp" />
<TextView
android:id="@+id/pass_link"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clickable="true"
android:gravity="center"
android:paddingTop="16dp"
android:text="@string/pass_info_learn_more"
android:textColor="@android:color/holo_blue_light"
android:textSize="20sp"
android:textStyle="italic" />
</LinearLayout>

@ -2,7 +2,7 @@
<menu xmlns:android="http://schemas.android.com/apk/res/android" > <menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item <item
android:id="@+id/enable_watch_switch" android:id="@+id/action_bar_switch"
android:title="" android:title=""
android:actionViewClass="android.widget.Switch" android:actionViewClass="android.widget.Switch"
android:showAsAction="always"> android:showAsAction="always">

@ -94,6 +94,7 @@
<string name="delete_image_only">Only delete the image</string> <string name="delete_image_only">Only delete the image</string>
<string name="preference_watch_settings">Thread watcher</string> <string name="preference_watch_settings">Thread watcher</string>
<string name="preference_pass_settings">4chan pass</string>
<string name="preference_general">General</string> <string name="preference_general">General</string>
<string name="preference_open_link_confirmation">Ask before opening links</string> <string name="preference_open_link_confirmation">Ask before opening links</string>
@ -138,6 +139,10 @@
<item>3600</item> <item>3600</item>
</string-array> </string-array>
<string name="pass_info_text">4chan pass enables you to post without filling in CAPTCHAs</string>
<string name="pass_info_learn_more">Learn more</string>
<string name="pass_info_link">https://www.4chan.org/pass</string>
</resources> </resources>

@ -15,6 +15,14 @@
android:targetClass="org.floens.chan.ui.activity.BoardEditor" android:targetClass="org.floens.chan.ui.activity.BoardEditor"
android:targetPackage="org.floens.chan" /> android:targetPackage="org.floens.chan" />
</Preference> </Preference>
<Preference
android:key="pass_settings"
android:title="@string/preference_pass_settings" >
<intent
android:action="android.intent.action.VIEW"
android:targetClass="org.floens.chan.ui.activity.PassSettingsActivity"
android:targetPackage="org.floens.chan" />
</Preference>
<PreferenceCategory android:title="@string/preference_general" > <PreferenceCategory android:title="@string/preference_general" >
<CheckBoxPreference <CheckBoxPreference

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
<CheckBoxPreference
android:key="dummy"
android:summaryOff="dummy off"
android:summaryOn="dummy on"
android:title="dummu" />
</PreferenceScreen>

@ -58,4 +58,14 @@ public class ChanPreferences {
public static boolean getVideoAutoPlay() { public static boolean getVideoAutoPlay() {
return ChanApplication.getPreferences().getBoolean("preference_autoplay", false); return ChanApplication.getPreferences().getBoolean("preference_autoplay", false);
} }
public static boolean getPassEnabled() {
return ChanApplication.getPreferences().getBoolean("preference_pass_enabled", false);
}
public static void setPassEnabled(boolean enabled) {
if (getWatchEnabled() != enabled) {
ChanApplication.getPreferences().edit().putBoolean("preference_pass_enabled", enabled).commit();
}
}
} }

@ -0,0 +1,105 @@
package org.floens.chan.ui.activity;
import org.floens.chan.R;
import org.floens.chan.core.ChanPreferences;
import org.floens.chan.utils.Utils;
import android.app.Activity;
import android.app.Fragment;
import android.app.FragmentTransaction;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.preference.PreferenceFragment;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.Switch;
import android.widget.TextView;
public class PassSettingsActivity extends Activity implements OnCheckedChangeListener {
private Switch enableSwitch;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setFragment(ChanPreferences.getPassEnabled());
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.action_bar_switch, menu);
enableSwitch = (Switch) menu.findItem(R.id.action_bar_switch).getActionView();
enableSwitch.setOnCheckedChangeListener(this);
enableSwitch.setPadding(0, 0, Utils.dp(14), 0);
setSwitch(ChanPreferences.getPassEnabled());
return true;
}
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
setFragment(isChecked);
setSwitch(isChecked);
}
private void setSwitch(boolean enabled) {
enableSwitch.setChecked(enabled);
ChanPreferences.setPassEnabled(enabled);
enableSwitch.setEnabled(false);
new Handler(Looper.getMainLooper()).postDelayed(new Runnable() {
@Override
public void run() {
enableSwitch.setEnabled(true);
}
}, 500);
}
private void setFragment(boolean enabled) {
if (enabled) {
FragmentTransaction t = getFragmentManager().beginTransaction();
t.replace(android.R.id.content, new PassSettingsFragment());
t.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
t.commit();
} else {
FragmentTransaction t = getFragmentManager().beginTransaction();
t.replace(android.R.id.content, new TextFragment());
t.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
t.commit();
}
}
public static class TextFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup group, Bundle savedInstanceState) {
View container = inflater.inflate(R.layout.preference_pass, null);
TextView link = (TextView) container.findViewById(R.id.pass_link);
link.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Utils.openLink(v.getContext(), v.getContext().getString(R.string.pass_info_link));
}
});
return container;
}
}
public static class PassSettingsFragment extends PreferenceFragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preference_pass);
}
}
}

@ -37,9 +37,9 @@ public class WatchSettingsActivity extends Activity implements OnCheckedChangeLi
@Override @Override
public boolean onCreateOptionsMenu(Menu menu) { public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.watch_settings, menu); getMenuInflater().inflate(R.menu.action_bar_switch, menu);
watchSwitch = (Switch) menu.findItem(R.id.enable_watch_switch).getActionView(); watchSwitch = (Switch) menu.findItem(R.id.action_bar_switch).getActionView();
watchSwitch.setOnCheckedChangeListener(this); watchSwitch.setOnCheckedChangeListener(this);
watchSwitch.setPadding(0, 0, Utils.dp(14), 0); watchSwitch.setPadding(0, 0, Utils.dp(14), 0);

Loading…
Cancel
Save