Yuvipanda has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/110622

Change subject: Add Login Activity, link from Left Nav
......................................................................

Add Login Activity, link from Left Nav

- Simple stub, does not do anything
- Also adds StyledCheckBox

Change-Id: I316a42098619202256ded314839d370b60d8d652
---
M wikipedia/AndroidManifest.xml
A wikipedia/res/layout/activity_login.xml
A wikipedia/res/menu/menu_login.xml
M wikipedia/res/values/strings.xml
M wikipedia/src/main/java/org/wikipedia/NavDrawerFragment.java
A wikipedia/src/main/java/org/wikipedia/login/LoginActivity.java
A wikipedia/src/main/java/org/wikipedia/styledviews/StyledCheckBox.java
7 files changed, 148 insertions(+), 2 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/apps/android/wikipedia 
refs/changes/22/110622/1

diff --git a/wikipedia/AndroidManifest.xml b/wikipedia/AndroidManifest.xml
index f83b285..31d7185 100644
--- a/wikipedia/AndroidManifest.xml
+++ b/wikipedia/AndroidManifest.xml
@@ -57,6 +57,10 @@
         <activity android:name=".editing.EditSectionActivity"
                   android:windowSoftInputMode="adjustResize"
                 />
+        <activity android:name=".login.LoginActivity"
+                  android:label="@string/login_activity_title"
+                  android:windowSoftInputMode="stateAlwaysVisible"
+                />
 
         <provider
             android:authorities="org.wikipedia.history"
diff --git a/wikipedia/res/layout/activity_login.xml 
b/wikipedia/res/layout/activity_login.xml
new file mode 100644
index 0000000..3cc3167
--- /dev/null
+++ b/wikipedia/res/layout/activity_login.xml
@@ -0,0 +1,35 @@
+<?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"
+              android:padding="16dp"
+        >
+    <org.wikipedia.styledviews.StylizedEditText
+            android:id="@+id/login_username_text"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            style="?android:textAppearanceMedium"
+            android:hint="@string/login_username_hint"
+            android:inputType="textNoSuggestions"
+            />
+    <org.wikipedia.styledviews.StylizedEditText
+            android:id="@+id/login_password_text"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:inputType="textPassword"
+            style="?android:textAppearanceMedium"
+            android:hint="@string/login_password_hint"
+            />
+    <org.wikipedia.styledviews.StyledCheckBox
+            android:id="@+id/login_show_password"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:checked="false"
+            android:text="@string/login_password_show_check"
+            style="?android:textAppearanceMedium"
+            />
+
+
+</LinearLayout>
\ No newline at end of file
diff --git a/wikipedia/res/menu/menu_login.xml 
b/wikipedia/res/menu/menu_login.xml
new file mode 100644
index 0000000..df0aa26
--- /dev/null
+++ b/wikipedia/res/menu/menu_login.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<menu xmlns:android="http://schemas.android.com/apk/res/android";>
+    <item android:id="@+id/menu_login"
+          android:icon="@android:drawable/ic_menu_send"
+          android:title="@string/menu_login"
+          android:showAsAction="always" />
+</menu>
\ No newline at end of file
diff --git a/wikipedia/res/values/strings.xml b/wikipedia/res/values/strings.xml
index ac56f9a..a6eea17 100644
--- a/wikipedia/res/values/strings.xml
+++ b/wikipedia/res/values/strings.xml
@@ -60,4 +60,10 @@
     <string name="edit_section_title_captcha">Enter captcha</string>
     <string name="edit_section_abusefilter_back_text">Make changes to my 
edit</string>
     <string name="edit_section_captcha_reload">Tap captcha to reload</string>
+    <string name="nav_item_login">Log in</string>
+    <string name="login_username_hint">Username</string>
+    <string name="login_password_hint">Password</string>
+    <string name="login_password_show_check">Display password</string>
+    <string name="menu_login">Log in</string>
+    <string name="login_activity_title">Login to Wikipedia</string>
 </resources>
\ No newline at end of file
diff --git a/wikipedia/src/main/java/org/wikipedia/NavDrawerFragment.java 
b/wikipedia/src/main/java/org/wikipedia/NavDrawerFragment.java
index 74928aa..0219332 100644
--- a/wikipedia/src/main/java/org/wikipedia/NavDrawerFragment.java
+++ b/wikipedia/src/main/java/org/wikipedia/NavDrawerFragment.java
@@ -8,6 +8,7 @@
 import android.view.ViewGroup;
 import android.widget.*;
 import org.wikipedia.history.HistoryActivity;
+import org.wikipedia.login.LoginActivity;
 import org.wikipedia.savedpages.SavedPagesActivity;
 import org.wikipedia.settings.SettingsActivity;
 
@@ -15,12 +16,14 @@
     private static final int[] ACTION_ITEMS_TEXT = {
             R.string.nav_item_history,
             R.string.nav_item_saved_pages,
-            R.string.nav_item_preferences
+            R.string.nav_item_preferences,
+            R.string.nav_item_login
     };
     private static final int[] ACTION_ITEM_IMAGES = {
             android.R.drawable.ic_menu_recent_history,
             android.R.drawable.ic_menu_save,
-            android.R.drawable.ic_menu_preferences
+            android.R.drawable.ic_menu_preferences,
+            android.R.drawable.ic_menu_add
     };
 
     private ListView navList;
@@ -50,6 +53,9 @@
             case R.string.nav_item_preferences:
                 intent.setClass(this.getActivity(), SettingsActivity.class);
                 break;
+            case R.string.nav_item_login:
+                intent.setClass(this.getActivity(), LoginActivity.class);
+                break;
             default:
                 throw new RuntimeException("Unknown ID clicked!");
         }
diff --git a/wikipedia/src/main/java/org/wikipedia/login/LoginActivity.java 
b/wikipedia/src/main/java/org/wikipedia/login/LoginActivity.java
new file mode 100644
index 0000000..1e8109c
--- /dev/null
+++ b/wikipedia/src/main/java/org/wikipedia/login/LoginActivity.java
@@ -0,0 +1,63 @@
+package org.wikipedia.login;
+
+import android.app.Activity;
+import android.os.Bundle;
+import android.text.InputType;
+import android.view.Menu;
+import android.view.MenuItem;
+import android.widget.CheckBox;
+import android.widget.CompoundButton;
+import android.widget.EditText;
+import org.wikipedia.R;
+
+public class LoginActivity extends Activity {
+    private EditText usernameText;
+    private EditText passwordText;
+    private CheckBox showPassword;
+
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_login);
+
+        getActionBar().setDisplayHomeAsUpEnabled(true);
+
+        usernameText = (EditText) findViewById(R.id.login_username_text);
+        passwordText = (EditText) findViewById(R.id.login_password_text);
+        showPassword = (CheckBox) findViewById(R.id.login_show_password);
+
+        showPassword.setOnCheckedChangeListener(new 
CompoundButton.OnCheckedChangeListener() {
+            @Override
+            public void onCheckedChanged(CompoundButton buttonView, boolean 
isChecked) {
+                // EditText loses the cursor position when you change the 
InputType
+                int curPos = passwordText.getSelectionStart();
+                if (isChecked) {
+                    passwordText.setInputType(InputType.TYPE_CLASS_TEXT);
+                } else {
+                    passwordText.setInputType(InputType.TYPE_CLASS_TEXT | 
InputType.TYPE_TEXT_VARIATION_PASSWORD);
+                }
+                passwordText.setSelection(curPos);
+            }
+        });
+    }
+
+    @Override
+    public boolean onCreateOptionsMenu(Menu menu) {
+        getMenuInflater().inflate(R.menu.menu_login, menu);
+        return true;
+    }
+
+    @Override
+    public boolean onMenuItemSelected(int featureId, MenuItem item) {
+        switch (item.getItemId()) {
+            case android.R.id.home:
+                finish();
+                break;
+            case R.id.menu_login:
+                // Do something!
+                break;
+            default:
+                throw new RuntimeException("Some menu item case is not 
handled");
+        }
+        return true;
+    }
+}
\ No newline at end of file
diff --git 
a/wikipedia/src/main/java/org/wikipedia/styledviews/StyledCheckBox.java 
b/wikipedia/src/main/java/org/wikipedia/styledviews/StyledCheckBox.java
new file mode 100644
index 0000000..32ae5eb
--- /dev/null
+++ b/wikipedia/src/main/java/org/wikipedia/styledviews/StyledCheckBox.java
@@ -0,0 +1,24 @@
+package org.wikipedia.styledviews;
+
+import android.content.Context;
+import android.util.AttributeSet;
+import android.widget.CheckBox;
+import android.widget.TextView;
+import org.wikipedia.WikipediaApp;
+
+public class StyledCheckBox extends CheckBox {
+    public StyledCheckBox(Context context) {
+        super(context);
+        
setTypeface(((WikipediaApp)context.getApplicationContext()).getPrimaryType());
+    }
+
+    public StyledCheckBox(Context context, AttributeSet attrs) {
+        super(context, attrs);
+        
setTypeface(((WikipediaApp)context.getApplicationContext()).getPrimaryType());
+    }
+
+    public StyledCheckBox(Context context, AttributeSet attrs, int defStyle) {
+        super(context, attrs, defStyle);
+        
setTypeface(((WikipediaApp)context.getApplicationContext()).getPrimaryType());
+    }
+}

-- 
To view, visit https://gerrit.wikimedia.org/r/110622
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I316a42098619202256ded314839d370b60d8d652
Gerrit-PatchSet: 1
Gerrit-Project: apps/android/wikipedia
Gerrit-Branch: master
Gerrit-Owner: Yuvipanda <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to