Browse Source

Added profile manager edit activity (still in progress)

Alexander Brakowski 10 years ago
parent
commit
1ccff0c956

+ 4 - 0
AndroidManifest.xml

@@ -60,6 +60,10 @@
             android:label="@string/database" >
         </activity>
         -->
+	    <activity
+			    android:name="de.tudarmstadt.informatik.hostage.ui2.preference.ProfileEditActivity"
+			    android:label="Edit Profile" >
+	    </activity>
         <activity
             android:name="de.tudarmstadt.informatik.hostage.ui.SettingsActivity"
             android:label="@string/settings" >

+ 10 - 0
HostageV2/src/main/AndroidManifest.xml

@@ -0,0 +1,10 @@
+<manifest xmlns:android="http://schemas.android.com/apk/res/android" >
+
+    <application>
+        <activity android:name=".........src.de.tudarmstadt.informatik.hostage.ui2.preference.ProfileEditActivity"
+            android:label="@string/title_activity_profile_edit"
+            >
+        </activity>
+    </application>
+
+</manifest>

+ 59 - 0
HostageV2/src/main/res/values/strings_activity_profile_edit.xml

@@ -0,0 +1,59 @@
+<resources>
+        <string name="title_activity_profile_edit">Profile Edit</string>
+
+    <!-- Strings related to Settings -->
+
+    <!-- Example General settings -->
+    <string name="pref_header_general">General</string>
+
+    <string name="pref_title_social_recommendations">Enable social recommendations</string>
+    <string name="pref_description_social_recommendations">Recommendations for people to contact based on your message history</string>
+
+    <string name="pref_title_display_name">Display name</string>
+    <string name="pref_default_display_name">John Smith</string>
+
+    <string name="pref_title_add_friends_to_messages">Add friends to messages</string>
+    <string-array name="pref_example_list_titles">
+        <item>Always</item>
+        <item>When possible</item>
+        <item>Never</item>
+    </string-array>
+    <string-array name="pref_example_list_values">
+        <item>1</item>
+        <item>0</item>
+        <item>-1</item>
+    </string-array>
+
+    <!-- Example settings for Data & Sync -->
+    <string name="pref_header_data_sync">Data &amp; sync</string>
+
+    <string name="pref_title_sync_frequency">Sync frequency</string>
+    <string-array name="pref_sync_frequency_titles">
+        <item>15 minutes</item>
+        <item>30 minutes</item>
+        <item>1 hour</item>
+        <item>3 hours</item>
+        <item>6 hours</item>
+        <item>Never</item>
+    </string-array>
+    <string-array name="pref_sync_frequency_values">
+        <item>15</item>
+        <item>30</item>
+        <item>60</item>
+        <item>180</item>
+        <item>360</item>
+        <item>-1</item>
+    </string-array>
+
+    <string name="pref_title_system_sync_settings">System sync settings</string>
+
+    <!-- Example settings for Notifications -->
+    <string name="pref_header_notifications">Notifications</string>
+
+    <string name="pref_title_new_message_notifications">New message notifications</string>
+
+    <string name="pref_title_ringtone">Ringtone</string>
+    <string name="pref_ringtone_silent">Silent</string>
+
+    <string name="pref_title_vibrate">Vibrate</string>
+</resources>

+ 17 - 0
HostageV2/src/main/res/xml/pref_headers.xml

@@ -0,0 +1,17 @@
+<preference-headers xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <!-- These settings headers are only used on tablets. -->
+
+    <header
+        android:fragment=".........src.de.tudarmstadt.informatik.hostage.ui2.preference.ProfileEditActivity$GeneralPreferenceFragment"
+        android:title="@string/pref_header_general" />
+
+    <header
+        android:fragment=".........src.de.tudarmstadt.informatik.hostage.ui2.preference.ProfileEditActivity$NotificationPreferenceFragment"
+        android:title="@string/pref_header_notifications" />
+
+    <header
+        android:fragment=".........src.de.tudarmstadt.informatik.hostage.ui2.preference.ProfileEditActivity$DataSyncPreferenceFragment"
+        android:title="@string/pref_header_data_sync" />
+
+</preference-headers>

+ 4 - 3
build.gradle

@@ -16,10 +16,11 @@ repositories {
 }
 
 dependencies {
+    compile 'com.google.android.gms:play-services:3.2.+'
+    compile 'org.roboguice:roboguice:2.0'
+    compile files('libs/nineoldandroids-2.4.0.jar')
+    compile 'com.android.support:support-v4:18.0.0'
     //compile fileTree(dir: 'libs', include: '*.jar')
-	compile 'com.google.android.gms:play-services:3.2.+'
-	compile 'org.roboguice:roboguice:2.0'
-    compile 'com.nineoldandroids:library:2.4.0+'
     compile files('libs/swipelistview-1.0.jar')
     compile files('libs/sshlib-v1.1.jar')
 }

+ 38 - 0
res/layout/actionbar_donebar.xml

@@ -0,0 +1,38 @@
+<?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="horizontal"
+              android:divider="?android:attr/dividerVertical"
+              android:dividerPadding="12dp"
+              android:showDividers="middle">
+
+
+	<LinearLayout
+			android:id="@+id/action_cancel"
+			style="@style/DoneBarActionButton">
+
+		<ImageView
+				android:src="@drawable/ic_action_cancel"
+				style="@style/DoneBarActionButtonImage"/>
+		<TextView
+				android:text="Discard"
+				style="@style/DoneBarActionButtonText"/>
+
+	</LinearLayout>
+
+	<!-- id must match corresponding menu item id -->
+	<LinearLayout
+			android:id="@+id/action_done"
+			style="@style/DoneBarActionButton">
+
+		<ImageView
+				android:src="@drawable/ic_action_done"
+				style="@style/DoneBarActionButtonImage"/>
+		<TextView
+				android:text="Save"
+				style="@style/DoneBarActionButtonText"/>
+
+	</LinearLayout>
+</LinearLayout>

+ 12 - 0
res/layout/preferences_image_widget.xml

@@ -0,0 +1,12 @@
+<?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">
+
+	<ImageView
+			android:layout_width="fill_parent"
+			android:layout_height="fill_parent"
+			android:id="@+id/preference_image" android:layout_gravity="center_horizontal"/>
+</LinearLayout>

+ 25 - 0
res/values/styles.xml

@@ -17,4 +17,29 @@
         <!-- All customizations that are NOT specific to a particular API-level can go here. -->
     </style>
 
+
+	<style name="DoneBarActionButton" parent="android:style/Widget.Holo.ActionButton">
+		<item name="android:layout_height">match_parent</item>
+		<item name="android:layout_width">0dp</item>
+		<item name="android:layout_weight">1</item>
+		<item name="android:focusable">true</item>
+		<item name="android:orientation">horizontal</item>
+	</style>
+
+	<style name="DoneBarActionButtonImage">
+		<item name="android:layout_height">wrap_content</item>
+		<item name="android:layout_width">wrap_content</item>
+		<item name="android:padding">4dp</item>
+	</style>
+
+	<style name="DoneBarActionButtonText">
+		<item name="android:layout_height">wrap_content</item>
+		<item name="android:layout_width">wrap_content</item>
+		<item name="android:textAppearance">?android:attr/actionMenuTextAppearance</item>
+		<item name="android:textColor">?android:attr/actionMenuTextColor</item>
+		<item name="android:orientation">horizontal</item>
+		<item name="android:singleLine">true</item>
+		<item name="android:ellipsize">none</item>
+		<item name="android:padding">4dp</item>
+	</style>
 </resources>

+ 0 - 1
res/xml/profile_preferences.xml

@@ -8,6 +8,5 @@
 		                    android:summary="Change the name of this profile"
 		                    android:defaultValue=""/>
 
-
 	</PreferenceCategory>
 </PreferenceScreen>

+ 11 - 0
src/de/tudarmstadt/informatik/hostage/ui2/adapter/ProfileManagerListAdapter.java

@@ -1,6 +1,7 @@
 package de.tudarmstadt.informatik.hostage.ui2.adapter;
 
 import android.content.Context;
+import android.content.Intent;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
@@ -19,6 +20,7 @@ import java.util.List;
 
 import de.tudarmstadt.informatik.hostage.R;
 import de.tudarmstadt.informatik.hostage.ui2.model.ProfileListItem;
+import de.tudarmstadt.informatik.hostage.ui2.preference.ProfileEditActivity;
 
 /**
  * @author Alexander Brakowski
@@ -76,6 +78,15 @@ public class ProfileManagerListAdapter extends ArrayAdapter<ProfileListItem> {
 	    holder.labelView.setText(item.text);
 	    holder.itemIcon.setImageBitmap(item.icon);
 
+		holder.buttonEdit.setOnClickListener(new View.OnClickListener() {
+			@Override
+			public void onClick(View v) {
+				Intent intent = new Intent(context, ProfileEditActivity.class);
+				intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+				context.startActivity(intent);
+			}
+		});
+
         if(!item.activated){
             RelativeLayout.LayoutParams lp = (RelativeLayout.LayoutParams )holder.textView.getLayoutParams();
             lp.setMargins(0,0,0,0);

+ 10 - 0
src/de/tudarmstadt/informatik/hostage/ui2/model/Profile.java

@@ -0,0 +1,10 @@
+package de.tudarmstadt.informatik.hostage.ui2.model;
+
+/**
+ * @author Alexander Brakowski
+ * @created 08.02.14 18:33
+ */
+public class Profile {
+
+
+}

+ 41 - 0
src/de/tudarmstadt/informatik/hostage/ui2/preference/ImageSelectPreference.java

@@ -0,0 +1,41 @@
+package de.tudarmstadt.informatik.hostage.ui2.preference;
+
+import android.content.Context;
+import android.preference.Preference;
+import android.util.AttributeSet;
+import android.view.View;
+import android.view.ViewGroup;
+
+import de.tudarmstadt.informatik.hostage.R;
+
+/**
+ * @author Alexander Brakowski
+ * @created 08.02.14 18:38
+ */
+public class ImageSelectPreference extends Preference {
+
+	private Context context;
+
+	public ImageSelectPreference(Context context, AttributeSet attrs,
+			int defStyle) {
+		super(context, attrs, defStyle);
+
+		this.context = context;
+	}
+
+	public void init(){
+		this.setWidgetLayoutResource(R.layout.preferences_image_widget);
+	}
+
+	@Override
+	protected void onClick() {
+		//context.start
+	}
+
+	/*protected View onCreateView(ViewGroup parent) {
+		View p = super.onCreateView(parent);
+
+
+		return p;
+	}*/
+}

+ 28 - 0
src/de/tudarmstadt/informatik/hostage/ui2/preference/ProfileEditActivity.java

@@ -0,0 +1,28 @@
+package de.tudarmstadt.informatik.hostage.ui2.preference;
+
+import android.content.Context;
+import android.os.Bundle;
+import android.preference.PreferenceActivity;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.widget.LinearLayout;
+
+import de.tudarmstadt.informatik.hostage.R;
+
+/**
+ * @author Alexander Brakowski
+ * @created 08.02.14 23:36
+ */
+public class ProfileEditActivity extends PreferenceActivity {
+
+	public void onCreate(Bundle savedInstanceState){
+		super.onCreate(savedInstanceState);
+
+		getFragmentManager().beginTransaction()
+				.replace(android.R.id.content, new ProfileEditFragment())
+				.commit();
+
+
+	}
+
+}

+ 34 - 0
src/de/tudarmstadt/informatik/hostage/ui2/preference/ProfileEditFragment.java

@@ -0,0 +1,34 @@
+package de.tudarmstadt.informatik.hostage.ui2.preference;
+
+import android.app.ActionBar;
+import android.content.Context;
+import android.os.Bundle;
+import android.preference.PreferenceFragment;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.widget.LinearLayout;
+
+import de.tudarmstadt.informatik.hostage.R;
+
+/**
+ * @author Alexander Brakowski
+ * @created 08.02.14 23:39
+ */
+public class ProfileEditFragment extends PreferenceFragment {
+
+	private LayoutInflater mInflater;
+
+	@Override
+	public void onCreate(Bundle savedInstanceState){
+		getActivity().getActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
+		super.onCreate(savedInstanceState);
+
+		mInflater = (LayoutInflater) getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
+
+		View actionBarButtons = mInflater.inflate(R.layout.actionbar_donebar, new LinearLayout(getActivity()), false);
+		getActivity().getActionBar().setCustomView(actionBarButtons);
+
+		addPreferencesFromResource(R.xml.profile_preferences);
+	}
+
+}