You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@taverna.apache.org by sa...@apache.org on 2018/06/05 14:47:47 UTC
[1/2] incubator-taverna-mobile git commit: Feat: User details in nav
header and New User Profile Activity
Repository: incubator-taverna-mobile
Updated Branches:
refs/heads/master f997f57f4 -> eff635177
Feat: User details in nav header and New User Profile Activity
Project: http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/commit/e072d3ba
Tree: http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/tree/e072d3ba
Diff: http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/diff/e072d3ba
Branch: refs/heads/master
Commit: e072d3ba1720e424810ac8e0c03042ea92b62eeb
Parents: 0d46e6f
Author: Hitesh Gautam <ga...@gmail.com>
Authored: Sat May 26 04:01:48 2018 +0530
Committer: Hitesh Gautam <ga...@gmail.com>
Committed: Mon Jun 4 15:31:14 2018 +0530
----------------------------------------------------------------------
app/build.gradle | 1 +
app/src/main/AndroidManifest.xml | 5 +-
.../mobile/data/local/PreferencesHelper.java | 2 +-
.../taverna/mobile/ui/DashboardActivity.java | 54 +++-
.../FavouriteWorkflowsActivity.java | 60 ++++
.../ui/myworkflows/MyWorkflowsActivity.java | 60 ++++
.../ui/userprofile/UserProfileActivity.java | 71 +++++
.../ui/userprofile/UserProfileFragment.java | 141 +++++++++
.../drawable/ic_account_circle_black_24dp.xml | 9 +
.../main/res/drawable/ic_email_black_24dp.xml | 9 +
.../ic_keyboard_arrow_right_black_24dp.xml | 9 +
.../res/drawable/ic_language_black_24dp.xml | 9 +
.../drawable/ic_location_city_black_24dp.xml | 9 +
.../res/drawable/ic_location_on_black_24dp.xml | 9 +
.../main/res/drawable/ic_storage_black_24dp.xml | 9 +
app/src/main/res/drawable/nav_header.png | Bin 0 -> 74018 bytes
.../res/layout/activity_favourite_workflows.xml | 33 ++
.../main/res/layout/activity_my_workflows.xml | 33 ++
.../main/res/layout/activity_user_profile.xml | 31 ++
.../main/res/layout/fragment_user_profile.xml | 317 +++++++++++++++++++
app/src/main/res/layout/nav_header.xml | 84 +++--
app/src/main/res/values/dimens.xml | 21 ++
app/src/main/res/values/strings.xml | 23 +-
23 files changed, 961 insertions(+), 38 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/e072d3ba/app/build.gradle
----------------------------------------------------------------------
diff --git a/app/build.gradle b/app/build.gradle
index 94a9839..0daa6c6 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -115,6 +115,7 @@ dependencies {
implementation "com.android.support:multidex:1.0.2"
implementation "com.google.code.gson:gson:2.8.2"
+ implementation 'de.hdodenhof:circleimageview:2.2.0'
implementation "com.anton46:stepsview:0.0.2"
//Dependencies for LeakCanary
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/e072d3ba/app/src/main/AndroidManifest.xml
----------------------------------------------------------------------
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 5c08b8f..e4290b7 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -101,6 +101,9 @@ limitations under the License.
android:exported="true"
/>
<activity android:name=".ui.usage.UsageActivity" />
+ <activity android:name=".ui.userprofile.UserProfileActivity"/>
+ <activity android:name=".ui.favouriteworkflow.FavouriteWorkflowsActivity"/>
+ <activity android:name=".ui.myworkflows.MyWorkflowsActivity"/>
</application>
-</manifest>
+</manifest>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/e072d3ba/app/src/main/java/org/apache/taverna/mobile/data/local/PreferencesHelper.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/data/local/PreferencesHelper.java b/app/src/main/java/org/apache/taverna/mobile/data/local/PreferencesHelper.java
index 064d443..a4818bf 100644
--- a/app/src/main/java/org/apache/taverna/mobile/data/local/PreferencesHelper.java
+++ b/app/src/main/java/org/apache/taverna/mobile/data/local/PreferencesHelper.java
@@ -151,7 +151,7 @@ public class PreferencesHelper {
sharedPref.edit().putString(PREF_KEY_USER_EMAIL, userEmail).apply();
}
- public String getUserAvatar() {
+ public String getUserAvatarUrl() {
return sharedPref.getString(PREF_KEY_USER_AVATAR, null);
}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/e072d3ba/app/src/main/java/org/apache/taverna/mobile/ui/DashboardActivity.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/ui/DashboardActivity.java b/app/src/main/java/org/apache/taverna/mobile/ui/DashboardActivity.java
index d6667ad..2b32bbf 100644
--- a/app/src/main/java/org/apache/taverna/mobile/ui/DashboardActivity.java
+++ b/app/src/main/java/org/apache/taverna/mobile/ui/DashboardActivity.java
@@ -26,6 +26,7 @@ import org.apache.taverna.mobile.ui.favouriteworkflow.FavouriteWorkflowsFragment
import org.apache.taverna.mobile.ui.login.LoginActivity;
import org.apache.taverna.mobile.ui.myworkflows.MyWorkflowFragment;
import org.apache.taverna.mobile.ui.usage.UsageActivity;
+import org.apache.taverna.mobile.ui.userprofile.UserProfileActivity;
import org.apache.taverna.mobile.ui.workflow.WorkflowFragment;
import org.apache.taverna.mobile.utils.ActivityUtils;
@@ -43,11 +44,23 @@ import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;
+import android.view.View;
import android.webkit.WebView;
import android.widget.TableLayout;
+import android.widget.TextView;
+
+import com.bumptech.glide.Glide;
+import com.bumptech.glide.load.engine.DiskCacheStrategy;
+import com.bumptech.glide.load.resource.drawable.GlideDrawable;
+import com.bumptech.glide.request.animation.GlideAnimation;
+import com.bumptech.glide.request.target.SimpleTarget;
import butterknife.BindView;
import butterknife.ButterKnife;
+import butterknife.OnClick;
+import de.hdodenhof.circleimageview.CircleImageView;
+
+import static org.apache.taverna.mobile.TavernaApplication.getContext;
public class DashboardActivity extends AppCompatActivity {
@@ -60,7 +73,6 @@ public class DashboardActivity extends AppCompatActivity {
@BindView(R.id.toolbar)
Toolbar toolbar;
-
private Dialog dialog;
private DataManager dataManager;
private Fragment fragment;
@@ -78,7 +90,6 @@ public class DashboardActivity extends AppCompatActivity {
dialog = new Dialog(this);
-
setSupportActionBar(toolbar);
final ActionBar ab = getSupportActionBar();
if (ab != null) {
@@ -100,6 +111,8 @@ public class DashboardActivity extends AppCompatActivity {
}
dataManager = new DataManager(new PreferencesHelper(this));
+
+ setNavHeader();
}
@@ -271,6 +284,43 @@ public class DashboardActivity extends AppCompatActivity {
finish();
}
+ private void setNavHeader() {
+
+ View headerView = navigationView.getHeaderView(0);
+ String avatarUrl = dataManager.getPreferencesHelper().getUserAvatarUrl();
+ final CircleImageView navUserAvatar = headerView.findViewById(R.id.nav_user_avatar);
+
+ Glide.with(getContext())
+ .load(avatarUrl)
+ .diskCacheStrategy(DiskCacheStrategy.SOURCE)
+ .placeholder(R.drawable.ic_account_circle_black_24dp)
+ .error(R.drawable.ic_account_circle_black_24dp)
+ .into(new SimpleTarget<GlideDrawable>() {
+ @Override
+ public void onResourceReady(GlideDrawable resource, GlideAnimation<?
+ super GlideDrawable> glideAnimation) {
+ navUserAvatar.setImageDrawable(resource);
+ }
+ });
+
+ navUserAvatar.setOnClickListener(new View.OnClickListener() {
+ @OnClick
+ public void onClick(View v) {
+ Intent intent = new Intent(DashboardActivity.this, UserProfileActivity.class);
+ startActivity(intent);
+ }
+ });
+
+ String userName = dataManager.getPreferencesHelper().getUserName();
+ TextView navUserName = headerView.findViewById(R.id.nav_user_name);
+ navUserName.setText(userName);
+
+ String userEmail = dataManager.getPreferencesHelper().getUserEmail();
+ TextView navUserEmail = headerView.findViewById(R.id.nav_user_email);
+ navUserEmail.setText(userEmail);
+
+ }
+
@Override
public boolean onOptionsItemSelected(MenuItem item) {
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/e072d3ba/app/src/main/java/org/apache/taverna/mobile/ui/favouriteworkflow/FavouriteWorkflowsActivity.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/ui/favouriteworkflow/FavouriteWorkflowsActivity.java b/app/src/main/java/org/apache/taverna/mobile/ui/favouriteworkflow/FavouriteWorkflowsActivity.java
new file mode 100644
index 0000000..a8cceef
--- /dev/null
+++ b/app/src/main/java/org/apache/taverna/mobile/ui/favouriteworkflow/FavouriteWorkflowsActivity.java
@@ -0,0 +1,60 @@
+package org.apache.taverna.mobile.ui.favouriteworkflow;
+
+import android.support.annotation.Nullable;
+import android.support.v7.app.ActionBar;
+import android.support.v7.app.AppCompatActivity;
+import android.os.Bundle;
+import android.support.v7.widget.Toolbar;
+import android.view.Menu;
+import android.view.MenuItem;
+
+import org.apache.taverna.mobile.R;
+import org.apache.taverna.mobile.utils.ActivityUtils;
+
+import butterknife.BindView;
+import butterknife.ButterKnife;
+
+public class FavouriteWorkflowsActivity extends AppCompatActivity {
+
+ @BindView(R.id.toolbar)
+ Toolbar mToolbar;
+
+ @Override
+ protected void onCreate(@Nullable Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_favourite_workflows);
+
+ ButterKnife.bind(this);
+
+ setSupportActionBar(mToolbar);
+ ActionBar actionbar = getSupportActionBar();
+
+ if (actionbar != null) {
+ actionbar.setHomeButtonEnabled(true);
+ actionbar.setDisplayHomeAsUpEnabled(true);
+ actionbar.setTitle(R.string.title_nav_favourite_workflows);
+ }
+
+ if (savedInstanceState == null) {
+ ActivityUtils.addFragmentToActivity(getSupportFragmentManager(),
+ new FavouriteWorkflowsFragment(), R.id.frame_container);
+ }
+ }
+
+ @Override
+ public boolean onCreateOptionsMenu(Menu menu) {
+ getMenuInflater().inflate(R.menu.dashboard_main, menu);
+ return true;
+ }
+
+ @Override
+ public boolean onOptionsItemSelected(MenuItem item) {
+ switch (item.getItemId()) {
+ case android.R.id.home:
+ finish();
+ return true;
+ }
+ return super.onOptionsItemSelected(item);
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/e072d3ba/app/src/main/java/org/apache/taverna/mobile/ui/myworkflows/MyWorkflowsActivity.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/ui/myworkflows/MyWorkflowsActivity.java b/app/src/main/java/org/apache/taverna/mobile/ui/myworkflows/MyWorkflowsActivity.java
new file mode 100644
index 0000000..92aa528
--- /dev/null
+++ b/app/src/main/java/org/apache/taverna/mobile/ui/myworkflows/MyWorkflowsActivity.java
@@ -0,0 +1,60 @@
+package org.apache.taverna.mobile.ui.myworkflows;
+
+import android.support.annotation.Nullable;
+import android.support.v7.app.ActionBar;
+import android.support.v7.app.AppCompatActivity;
+import android.os.Bundle;
+import android.support.v7.widget.Toolbar;
+import android.view.Menu;
+import android.view.MenuItem;
+
+import org.apache.taverna.mobile.R;
+import org.apache.taverna.mobile.utils.ActivityUtils;
+
+import butterknife.BindView;
+import butterknife.ButterKnife;
+
+public class MyWorkflowsActivity extends AppCompatActivity {
+
+ @BindView(R.id.toolbar)
+ Toolbar mToolbar;
+
+ @Override
+ protected void onCreate(@Nullable Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_my_workflows);
+
+ ButterKnife.bind(this);
+
+ setSupportActionBar(mToolbar);
+ ActionBar actionbar = getSupportActionBar();
+
+ if (actionbar != null) {
+ actionbar.setHomeButtonEnabled(true);
+ actionbar.setDisplayHomeAsUpEnabled(true);
+ actionbar.setTitle(R.string.title_nav_my_workflows);
+ }
+
+ if (savedInstanceState == null) {
+ ActivityUtils.addFragmentToActivity(getSupportFragmentManager(),
+ new MyWorkflowFragment(), R.id.frame_container);
+ }
+ }
+
+ @Override
+ public boolean onCreateOptionsMenu(Menu menu) {
+ getMenuInflater().inflate(R.menu.dashboard_main, menu);
+ return true;
+ }
+
+ @Override
+ public boolean onOptionsItemSelected(MenuItem item) {
+ switch (item.getItemId()) {
+ case android.R.id.home:
+ finish();
+ return true;
+ }
+ return super.onOptionsItemSelected(item);
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/e072d3ba/app/src/main/java/org/apache/taverna/mobile/ui/userprofile/UserProfileActivity.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/ui/userprofile/UserProfileActivity.java b/app/src/main/java/org/apache/taverna/mobile/ui/userprofile/UserProfileActivity.java
new file mode 100644
index 0000000..9e3719f
--- /dev/null
+++ b/app/src/main/java/org/apache/taverna/mobile/ui/userprofile/UserProfileActivity.java
@@ -0,0 +1,71 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.taverna.mobile.ui.userprofile;
+
+import android.os.Bundle;
+import android.support.annotation.Nullable;
+import android.support.v7.app.ActionBar;
+import android.support.v7.app.AppCompatActivity;
+import android.support.v7.widget.Toolbar;
+import android.view.MenuItem;
+
+import org.apache.taverna.mobile.R;
+import org.apache.taverna.mobile.utils.ActivityUtils;
+import butterknife.BindView;
+import butterknife.ButterKnife;
+
+public class UserProfileActivity extends AppCompatActivity {
+
+ @BindView(R.id.toolbar)
+ Toolbar mToolbar;
+
+ @Override
+ protected void onCreate(@Nullable Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_user_profile);
+
+ ButterKnife.bind(this);
+
+ setSupportActionBar(mToolbar);
+ ActionBar actionbar = getSupportActionBar();
+
+ if (actionbar != null) {
+ actionbar.setHomeButtonEnabled(true);
+ actionbar.setDisplayHomeAsUpEnabled(true);
+ actionbar.setTitle(R.string.title_user_profile);
+ }
+
+ if (savedInstanceState == null) {
+ ActivityUtils.addFragmentToActivity(getSupportFragmentManager(),
+ new UserProfileFragment(), R.id.frame_container);
+ }
+
+ }
+
+ @Override
+ public boolean onOptionsItemSelected(MenuItem item) {
+ switch (item.getItemId()) {
+ case android.R.id.home:
+ finish();
+ return true;
+ }
+ return super.onOptionsItemSelected(item);
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/e072d3ba/app/src/main/java/org/apache/taverna/mobile/ui/userprofile/UserProfileFragment.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/ui/userprofile/UserProfileFragment.java b/app/src/main/java/org/apache/taverna/mobile/ui/userprofile/UserProfileFragment.java
new file mode 100644
index 0000000..c80a17e
--- /dev/null
+++ b/app/src/main/java/org/apache/taverna/mobile/ui/userprofile/UserProfileFragment.java
@@ -0,0 +1,141 @@
+package org.apache.taverna.mobile.ui.userprofile;
+
+import android.content.Intent;
+import android.os.Bundle;
+import android.support.v4.app.Fragment;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import com.bumptech.glide.Glide;
+import com.bumptech.glide.load.engine.DiskCacheStrategy;
+import com.bumptech.glide.load.resource.drawable.GlideDrawable;
+import com.bumptech.glide.request.animation.GlideAnimation;
+import com.bumptech.glide.request.target.SimpleTarget;
+
+import org.apache.taverna.mobile.R;
+import org.apache.taverna.mobile.data.DataManager;
+import org.apache.taverna.mobile.data.local.PreferencesHelper;
+import org.apache.taverna.mobile.ui.favouriteworkflow.FavouriteWorkflowsActivity;
+import org.apache.taverna.mobile.ui.myworkflows.MyWorkflowsActivity;
+
+import butterknife.BindView;
+import butterknife.ButterKnife;
+import butterknife.OnClick;
+import de.hdodenhof.circleimageview.CircleImageView;
+
+public class UserProfileFragment extends Fragment {
+
+ @BindView(R.id.user_name)
+ TextView mUserName;
+
+ @BindView(R.id.user_avatar)
+ CircleImageView mUserAvatar;
+
+ @BindView(R.id.user_email)
+ TextView mUserEmail;
+
+ @BindView(R.id.user_website)
+ TextView mUserWebsite;
+
+ @BindView(R.id.user_description)
+ TextView mUserDescription;
+
+ @BindView(R.id.user_city)
+ TextView mUserCity;
+
+ @BindView(R.id.user_country)
+ TextView mUserCountry;
+
+ private DataManager dataManager;
+
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup parent, Bundle savedInstanceState) {
+ return inflater.inflate(R.layout.fragment_user_profile, parent, false);
+
+ }
+
+ @Override
+ public void onViewCreated(View view, Bundle savedInstanceState) {
+ ButterKnife.bind(this, view);
+
+ setUserDetail();
+
+ }
+
+ @OnClick(R.id.my_workflow_layout)
+ void myWorkflows(View v) {
+ Intent intent = new Intent(getActivity(), MyWorkflowsActivity.class);
+ getActivity().startActivity(intent);
+ }
+
+ @OnClick(R.id.my_favorite_workflow_layout)
+ void myFavoriteWorkflow(View v) {
+ Intent intent = new Intent(getActivity(), FavouriteWorkflowsActivity.class);
+ getActivity().startActivity(intent);
+ }
+
+ private void setUserDetail() {
+
+ dataManager = new DataManager(new PreferencesHelper(getContext()));
+
+ String userName = dataManager.getPreferencesHelper().getUserName();
+ String userDescription = dataManager.getPreferencesHelper().getUserDescription();
+ String userEmail = dataManager.getPreferencesHelper().getUserEmail();
+ String userWebsite = dataManager.getPreferencesHelper().getUserWebsite();
+ String userCity = dataManager.getPreferencesHelper().getUserCity();
+ String userCountry = dataManager.getPreferencesHelper().getUserCountry();
+
+ String avatarUrl = dataManager.getPreferencesHelper().getUserAvatarUrl();
+ Glide.with(getContext())
+ .load(avatarUrl)
+ .diskCacheStrategy(DiskCacheStrategy.SOURCE)
+ .placeholder(R.drawable.ic_account_circle_black_24dp)
+ .error(R.drawable.ic_account_circle_black_24dp)
+ .into(new SimpleTarget<GlideDrawable>() {
+ @Override
+ public void onResourceReady(GlideDrawable resource, GlideAnimation<? super
+ GlideDrawable> glideAnimation) {
+ mUserAvatar.setImageDrawable(resource);
+ }
+ });
+
+ if (userName != null) {
+ mUserName.setText(userName);
+ } else {
+ mUserName.setText(R.string.empty_fields);
+ }
+
+ if (userDescription != null) {
+ userDescription = android.text.Html.fromHtml(userDescription).toString();
+ mUserDescription.setText(userDescription);
+ } else {
+ mUserDescription.setText("");
+ }
+
+ if (userEmail != null) {
+ mUserEmail.setText(userEmail);
+ } else {
+ mUserEmail.setText(R.string.empty_fields);
+ }
+
+ if (userWebsite != null) {
+ mUserWebsite.setText(userWebsite);
+ } else {
+ mUserWebsite.setText(R.string.empty_fields);
+ }
+
+ if (userCity != null) {
+ mUserCity.setText(userCity);
+ } else {
+ mUserCity.setText(R.string.empty_fields);
+ }
+
+ if (userCountry != null) {
+ mUserCountry.setText(userCountry);
+ } else {
+ mUserCountry.setText(R.string.empty_fields);
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/e072d3ba/app/src/main/res/drawable/ic_account_circle_black_24dp.xml
----------------------------------------------------------------------
diff --git a/app/src/main/res/drawable/ic_account_circle_black_24dp.xml b/app/src/main/res/drawable/ic_account_circle_black_24dp.xml
new file mode 100644
index 0000000..fe5e925
--- /dev/null
+++ b/app/src/main/res/drawable/ic_account_circle_black_24dp.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24.0"
+ android:viewportHeight="24.0">
+ <path
+ android:fillColor="#ffffff"
+ android:pathData="M12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM12,5c1.66,0 3,1.34 3,3s-1.34,3 -3,3 -3,-1.34 -3,-3 1.34,-3 3,-3zM12,19.2c-2.5,0 -4.71,-1.28 -6,-3.22 0.03,-1.99 4,-3.08 6,-3.08 1.99,0 5.97,1.09 6,3.08 -1.29,1.94 -3.5,3.22 -6,3.22z"/>
+</vector>
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/e072d3ba/app/src/main/res/drawable/ic_email_black_24dp.xml
----------------------------------------------------------------------
diff --git a/app/src/main/res/drawable/ic_email_black_24dp.xml b/app/src/main/res/drawable/ic_email_black_24dp.xml
new file mode 100644
index 0000000..ce97ab8
--- /dev/null
+++ b/app/src/main/res/drawable/ic_email_black_24dp.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24.0"
+ android:viewportHeight="24.0">
+ <path
+ android:fillColor="#FF000000"
+ android:pathData="M20,4L4,4c-1.1,0 -1.99,0.9 -1.99,2L2,18c0,1.1 0.9,2 2,2h16c1.1,0 2,-0.9 2,-2L22,6c0,-1.1 -0.9,-2 -2,-2zM20,8l-8,5 -8,-5L4,6l8,5 8,-5v2z"/>
+</vector>
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/e072d3ba/app/src/main/res/drawable/ic_keyboard_arrow_right_black_24dp.xml
----------------------------------------------------------------------
diff --git a/app/src/main/res/drawable/ic_keyboard_arrow_right_black_24dp.xml b/app/src/main/res/drawable/ic_keyboard_arrow_right_black_24dp.xml
new file mode 100644
index 0000000..a3d1622
--- /dev/null
+++ b/app/src/main/res/drawable/ic_keyboard_arrow_right_black_24dp.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24.0"
+ android:viewportHeight="24.0">
+ <path
+ android:fillColor="#FF000000"
+ android:pathData="M8.59,16.34l4.58,-4.59 -4.58,-4.59L10,5.75l6,6 -6,6z"/>
+</vector>
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/e072d3ba/app/src/main/res/drawable/ic_language_black_24dp.xml
----------------------------------------------------------------------
diff --git a/app/src/main/res/drawable/ic_language_black_24dp.xml b/app/src/main/res/drawable/ic_language_black_24dp.xml
new file mode 100644
index 0000000..d07324c
--- /dev/null
+++ b/app/src/main/res/drawable/ic_language_black_24dp.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24.0"
+ android:viewportHeight="24.0">
+ <path
+ android:fillColor="#FF000000"
+ android:pathData="M11.99,2C6.47,2 2,6.48 2,12s4.47,10 9.99,10C17.52,22 22,17.52 22,12S17.52,2 11.99,2zM18.92,8h-2.95c-0.32,-1.25 -0.78,-2.45 -1.38,-3.56 1.84,0.63 3.37,1.91 4.33,3.56zM12,4.04c0.83,1.2 1.48,2.53 1.91,3.96h-3.82c0.43,-1.43 1.08,-2.76 1.91,-3.96zM4.26,14C4.1,13.36 4,12.69 4,12s0.1,-1.36 0.26,-2h3.38c-0.08,0.66 -0.14,1.32 -0.14,2 0,0.68 0.06,1.34 0.14,2L4.26,14zM5.08,16h2.95c0.32,1.25 0.78,2.45 1.38,3.56 -1.84,-0.63 -3.37,-1.9 -4.33,-3.56zM8.03,8L5.08,8c0.96,-1.66 2.49,-2.93 4.33,-3.56C8.81,5.55 8.35,6.75 8.03,8zM12,19.96c-0.83,-1.2 -1.48,-2.53 -1.91,-3.96h3.82c-0.43,1.43 -1.08,2.76 -1.91,3.96zM14.34,14L9.66,14c-0.09,-0.66 -0.16,-1.32 -0.16,-2 0,-0.68 0.07,-1.35 0.16,-2h4.68c0.09,0.65 0.16,1.32 0.16,2 0,0.68 -0.07,1.34 -0.16,2zM14.59,19.56c0.6,-1.11 1.06,-2.31 1.38,-3.56h2.95c-0.96,1.65 -2.49,2.93 -4.33,3.56zM16.36,14c0.08,-0.66 0.14,-1.32 0.14,-2 0,-0.68 -0.06,-1.34 -0.14,-2h3.38c0.16,0.64 0.26,1.31 0.26,2s-0.1,1.36 -0.26,2h-3.38z"/>
+</vector>
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/e072d3ba/app/src/main/res/drawable/ic_location_city_black_24dp.xml
----------------------------------------------------------------------
diff --git a/app/src/main/res/drawable/ic_location_city_black_24dp.xml b/app/src/main/res/drawable/ic_location_city_black_24dp.xml
new file mode 100644
index 0000000..a7c688f
--- /dev/null
+++ b/app/src/main/res/drawable/ic_location_city_black_24dp.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24.0"
+ android:viewportHeight="24.0">
+ <path
+ android:fillColor="#FF000000"
+ android:pathData="M15,11L15,5l-3,-3 -3,3v2L3,7v14h18L21,11h-6zM7,19L5,19v-2h2v2zM7,15L5,15v-2h2v2zM7,11L5,11L5,9h2v2zM13,19h-2v-2h2v2zM13,15h-2v-2h2v2zM13,11h-2L11,9h2v2zM13,7h-2L11,5h2v2zM19,19h-2v-2h2v2zM19,15h-2v-2h2v2z"/>
+</vector>
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/e072d3ba/app/src/main/res/drawable/ic_location_on_black_24dp.xml
----------------------------------------------------------------------
diff --git a/app/src/main/res/drawable/ic_location_on_black_24dp.xml b/app/src/main/res/drawable/ic_location_on_black_24dp.xml
new file mode 100644
index 0000000..e3291a9
--- /dev/null
+++ b/app/src/main/res/drawable/ic_location_on_black_24dp.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24.0"
+ android:viewportHeight="24.0">
+ <path
+ android:fillColor="#FF000000"
+ android:pathData="M12,2C8.13,2 5,5.13 5,9c0,5.25 7,13 7,13s7,-7.75 7,-13c0,-3.87 -3.13,-7 -7,-7zM12,11.5c-1.38,0 -2.5,-1.12 -2.5,-2.5s1.12,-2.5 2.5,-2.5 2.5,1.12 2.5,2.5 -1.12,2.5 -2.5,2.5z"/>
+</vector>
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/e072d3ba/app/src/main/res/drawable/ic_storage_black_24dp.xml
----------------------------------------------------------------------
diff --git a/app/src/main/res/drawable/ic_storage_black_24dp.xml b/app/src/main/res/drawable/ic_storage_black_24dp.xml
new file mode 100644
index 0000000..53c595c
--- /dev/null
+++ b/app/src/main/res/drawable/ic_storage_black_24dp.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24.0"
+ android:viewportHeight="24.0">
+ <path
+ android:fillColor="#FF000000"
+ android:pathData="M2,20h20v-4L2,16v4zM4,17h2v2L4,19v-2zM2,4v4h20L22,4L2,4zM6,7L4,7L4,5h2v2zM2,14h20v-4L2,10v4zM4,11h2v2L4,13v-2z"/>
+</vector>
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/e072d3ba/app/src/main/res/drawable/nav_header.png
----------------------------------------------------------------------
diff --git a/app/src/main/res/drawable/nav_header.png b/app/src/main/res/drawable/nav_header.png
new file mode 100644
index 0000000..312c5b5
Binary files /dev/null and b/app/src/main/res/drawable/nav_header.png differ
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/e072d3ba/app/src/main/res/layout/activity_favourite_workflows.xml
----------------------------------------------------------------------
diff --git a/app/src/main/res/layout/activity_favourite_workflows.xml b/app/src/main/res/layout/activity_favourite_workflows.xml
new file mode 100644
index 0000000..4dbe6b7
--- /dev/null
+++ b/app/src/main/res/layout/activity_favourite_workflows.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<LinearLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:orientation="vertical">
+
+ <include layout="@layout/appbar"/>
+
+ <FrameLayout
+ android:id="@+id/frame_container"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"/>
+
+</LinearLayout>
+
+
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/e072d3ba/app/src/main/res/layout/activity_my_workflows.xml
----------------------------------------------------------------------
diff --git a/app/src/main/res/layout/activity_my_workflows.xml b/app/src/main/res/layout/activity_my_workflows.xml
new file mode 100644
index 0000000..4dbe6b7
--- /dev/null
+++ b/app/src/main/res/layout/activity_my_workflows.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<LinearLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:orientation="vertical">
+
+ <include layout="@layout/appbar"/>
+
+ <FrameLayout
+ android:id="@+id/frame_container"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"/>
+
+</LinearLayout>
+
+
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/e072d3ba/app/src/main/res/layout/activity_user_profile.xml
----------------------------------------------------------------------
diff --git a/app/src/main/res/layout/activity_user_profile.xml b/app/src/main/res/layout/activity_user_profile.xml
new file mode 100644
index 0000000..1c42c37
--- /dev/null
+++ b/app/src/main/res/layout/activity_user_profile.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<LinearLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:orientation="vertical">
+
+ <include layout="@layout/appbar"/>
+
+ <FrameLayout
+ android:id="@+id/frame_container"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"/>
+
+</LinearLayout>
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/e072d3ba/app/src/main/res/layout/fragment_user_profile.xml
----------------------------------------------------------------------
diff --git a/app/src/main/res/layout/fragment_user_profile.xml b/app/src/main/res/layout/fragment_user_profile.xml
new file mode 100644
index 0000000..af19b7d
--- /dev/null
+++ b/app/src/main/res/layout/fragment_user_profile.xml
@@ -0,0 +1,317 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ android:orientation="vertical">
+
+ <android.support.v4.widget.NestedScrollView
+ android:layout_width="match_parent"
+ android:layout_height="match_parent">
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical">
+
+ <RelativeLayout
+ android:layout_width="match_parent"
+ android:layout_height="@dimen/top_background_height"
+ android:orientation="vertical"
+ android:background="@color/colorPrimary"
+ android:gravity="center_vertical">
+
+ <de.hdodenhof.circleimageview.CircleImageView
+ android:id="@+id/user_avatar"
+ android:layout_width="@dimen/user_image_height"
+ android:layout_height="@dimen/user_image_height"
+ android:layout_centerHorizontal="true"
+ android:layout_centerVertical="true"
+ android:layout_centerInParent="true"
+ android:layout_alignParentTop="true"
+ app:civ_border_color="@color/white"/>
+
+ <TextView
+ android:id="@+id/user_name"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="@string/user_name"
+ android:textColor="@color/white"
+ android:textSize="@dimen/user_name_text_size"
+ android:layout_below="@+id/user_avatar"
+ android:layout_centerHorizontal="true"
+ android:layout_marginTop="@dimen/user_name_margin_top"/>
+
+ <TextView
+ android:id="@+id/user_description"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:textAlignment="center"
+ android:gravity="center"
+ android:layout_below="@id/user_name"
+ android:layout_marginTop="@dimen/user_description_margin_top"
+ android:textColor="@color/white"/>
+
+ </RelativeLayout>
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:orientation="vertical">
+
+ <LinearLayout
+ android:id="@+id/email_layout"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal">
+
+ <LinearLayout
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:padding="@dimen/coloumn_linear_layout_padding"
+ android:orientation="horizontal">
+
+ <ImageView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:src="@drawable/ic_email_black_24dp"/>
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="@string/user_email"
+ android:textColor="@color/colorBlack"
+ android:textSize="@dimen/row_title_text_size"
+ android:layout_marginLeft="@dimen/row_title_margin_left"
+ android:layout_gravity="center"/>
+
+ </LinearLayout>
+
+ <TextView
+ android:id="@+id/user_email"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:textSize="@dimen/row_entry_text_size"
+ android:layout_gravity="center_vertical"
+ android:paddingRight="@dimen/row_entry_padding_right"/>
+
+ </LinearLayout>
+
+ <LinearLayout
+ android:id="@+id/website_layout"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal">
+
+ <LinearLayout
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:padding="@dimen/coloumn_linear_layout_padding"
+ android:orientation="horizontal">
+
+ <ImageView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:src="@drawable/ic_language_black_24dp"/>
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="@string/user_website"
+ android:textColor="@color/colorBlack"
+ android:textSize="@dimen/row_title_text_size"
+ android:layout_marginLeft="@dimen/row_title_margin_left"
+ android:layout_gravity="center"/>
+
+ </LinearLayout>
+
+ <TextView
+ android:id="@+id/user_website"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:textSize="@dimen/row_entry_text_size"
+ android:layout_gravity="center_vertical"
+ android:paddingRight="@dimen/row_entry_padding_right"/>
+
+ </LinearLayout>
+
+ <LinearLayout
+ android:id="@+id/city_layout"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal">
+
+ <LinearLayout
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:padding="@dimen/coloumn_linear_layout_padding"
+ android:orientation="horizontal">
+
+ <ImageView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:src="@drawable/ic_location_city_black_24dp"/>
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="@string/user_city"
+ android:textColor="@color/colorBlack"
+ android:textSize="@dimen/row_title_text_size"
+ android:layout_marginLeft="@dimen/row_title_margin_left"
+ android:layout_gravity="center"/>
+
+ </LinearLayout>
+
+ <TextView
+ android:id="@+id/user_city"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:textSize="@dimen/row_entry_text_size"
+ android:layout_gravity="center_vertical"
+ android:paddingRight="@dimen/row_entry_padding_right"/>
+
+ </LinearLayout>
+
+ <LinearLayout
+ android:id="@+id/country_layout"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal">
+
+ <LinearLayout
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:padding="@dimen/coloumn_linear_layout_padding"
+ android:orientation="horizontal">
+
+ <ImageView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:src="@drawable/ic_location_on_black_24dp"/>
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="@string/user_country"
+ android:textColor="@color/colorBlack"
+ android:textSize="@dimen/row_title_text_size"
+ android:layout_marginLeft="@dimen/row_title_margin_left"
+ android:layout_gravity="center"/>
+
+ </LinearLayout>
+
+ <TextView
+ android:id="@+id/user_country"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:textSize="@dimen/row_entry_text_size"
+ android:layout_gravity="center_vertical"
+ android:paddingRight="@dimen/row_entry_padding_right"/>
+
+ </LinearLayout>
+
+ <LinearLayout
+ android:id="@+id/my_workflow_layout"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal">
+
+ <LinearLayout
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:padding="@dimen/coloumn_linear_layout_padding"
+ android:orientation="horizontal">
+
+ <ImageView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:src="@drawable/ic_storage_black_24dp"/>
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="@string/user_my_workflow"
+ android:textColor="@color/colorBlack"
+ android:textSize="@dimen/row_title_text_size"
+ android:layout_marginLeft="@dimen/row_title_margin_left"
+ android:layout_gravity="center" />
+
+ </LinearLayout>
+
+ <ImageView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center_vertical"
+ android:paddingRight="@dimen/row_entry_padding_right"
+ android:src="@drawable/ic_keyboard_arrow_right_black_24dp"/>
+
+ </LinearLayout>
+
+ <LinearLayout
+ android:id="@+id/my_favorite_workflow_layout"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal">
+
+ <LinearLayout
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:padding="@dimen/coloumn_linear_layout_padding"
+ android:orientation="horizontal">
+
+ <ImageView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:src="@drawable/ic_star_black_24dp"/>
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="@string/user_my_favorite_workflow"
+ android:textColor="@color/colorBlack"
+ android:textSize="@dimen/row_title_text_size"
+ android:layout_marginLeft="@dimen/row_title_margin_left"
+ android:layout_gravity="center"/>
+
+ </LinearLayout>
+
+ <ImageView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center_vertical"
+ android:paddingRight="@dimen/row_entry_padding_right"
+ android:src="@drawable/ic_keyboard_arrow_right_black_24dp"/>
+
+ </LinearLayout>
+
+ </LinearLayout>
+
+ </LinearLayout>
+
+ </android.support.v4.widget.NestedScrollView>
+</LinearLayout>
+
+
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/e072d3ba/app/src/main/res/layout/nav_header.xml
----------------------------------------------------------------------
diff --git a/app/src/main/res/layout/nav_header.xml b/app/src/main/res/layout/nav_header.xml
index e31a687..ebefb1d 100644
--- a/app/src/main/res/layout/nav_header.xml
+++ b/app/src/main/res/layout/nav_header.xml
@@ -1,35 +1,65 @@
+<?xml version="1.0" encoding="utf-8"?>
<!--
-Apache Taverna Mobile
-Copyright 2015 The Apache Software Foundation
-This product includes software developed at
-The Apache Software Foundation (http://www.apache.org/).
-
-Licensed to the Apache Software Foundation (ASF) under one or more
-contributor license agreements. See the NOTICE file distributed with
-this work for additional information regarding copyright ownership.
-The ASF licenses this file to You under the Apache License, Version 2.0
-(the "License"); you may not use this file except in compliance with
-the License. You may obtain a copy of the License at
-http://www.apache.org/licenses/LICENSE-2.0
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
-->
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="@dimen/nav_image_height"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ android:background="@drawable/nav_header"
+ android:orientation="vertical"
+ android:weightSum="1">
+
<LinearLayout
- xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
- android:layout_height="match_parent"
+ android:layout_height="wrap_content"
android:orientation="vertical"
- android:background="#ccc">
+ android:layout_alignParentBottom="true"
+ android:layout_alignParentLeft="true"
+ android:layout_alignParentStart="true"
+ android:layout_marginBottom="@dimen/layout_marginBottom">
- <LinearLayout
- android:orientation="vertical"
- android:layout_width="match_parent"
+ <TextView
+ android:id="@+id/nav_user_name"
+ android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:background="@drawable/sliding_header">
- </LinearLayout>
+ android:layout_marginLeft="@dimen/tv_layout_marginLeft"
+ android:textColor="@color/white"
+ android:text="@string/username"
+ android:textSize="@dimen/tv_textSize"
+ android:textStyle="bold"/>
+
+ <TextView
+ android:id="@+id/nav_user_email"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:textColor="@color/white"
+ android:layout_marginLeft="@dimen/tv_layout_marginLeft"
+ android:text="@string/email"
+ android:textSize="@dimen/tv_textSize"
+ android:textStyle="normal"/>
+
+</LinearLayout>
+
+ <de.hdodenhof.circleimageview.CircleImageView
+ android:id="@+id/nav_user_avatar"
+ android:layout_width="@dimen/user_image_length"
+ android:layout_height="@dimen/user_image_length"
+ android:layout_marginLeft="@dimen/user_image_margin_left"
+ android:layout_marginTop="@dimen/user_image_margin_top"
+ app:civ_border_color="@color/white"/>
-</LinearLayout>
\ No newline at end of file
+</RelativeLayout>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/e072d3ba/app/src/main/res/values/dimens.xml
----------------------------------------------------------------------
diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml
index 9b33606..188c177 100644
--- a/app/src/main/res/values/dimens.xml
+++ b/app/src/main/res/values/dimens.xml
@@ -99,4 +99,25 @@ limitations under the License.
<dimen name="margin_top">20dp</dimen>
<dimen name="tutorialView_height">1dp</dimen>
+ <!-- User Profile Dimens -->
+ <dimen name="top_background_height">170dp</dimen>
+ <dimen name="user_image_height">90dp</dimen>
+ <dimen name="user_name_text_size">20dp</dimen>
+ <dimen name="user_name_margin_top">5dp</dimen>
+ <dimen name="user_description_margin_top">10dp</dimen>
+ <dimen name="coloumn_linear_layout_padding">15dp</dimen>
+ <dimen name="row_title_text_size">15dp</dimen>
+ <dimen name="row_title_margin_left">10dp</dimen>
+ <dimen name="row_entry_text_size">13dp</dimen>
+ <dimen name="row_entry_padding_right">20dp</dimen>
+
+ <!-- Navigation Header Dimens -->
+ <dimen name="nav_image_height">170dp</dimen>
+ <dimen name="layout_marginBottom">10dp</dimen>
+ <dimen name="tv_layout_marginLeft">16dp</dimen>
+ <dimen name="tv_textSize">14sp</dimen>
+ <dimen name="user_image_length">70dp</dimen>
+ <dimen name="user_image_margin_left">10dp</dimen>
+ <dimen name="user_image_margin_top">55dp</dimen>
+
</resources>
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/e072d3ba/app/src/main/res/values/strings.xml
----------------------------------------------------------------------
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 3f42bba..21b6953 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -44,6 +44,7 @@ limitations under the License.
<string name="title_explore">Workflows</string>
<string name="title_usage">Usage</string>
+ <string name="title_user_profile">Profile</string>
<string name="title_about">About</string>
<string name="title_exit">Logout</string>
<string name="menu_search">Search</string>
@@ -107,8 +108,7 @@ limitations under the License.
The Apache Software Foundation, Licensed under the Apache License, Version 2.0.
</string>
<string name="about2">View, run and download workflows on your Android mobile device.</string>
- <string name="about3">Originally developed during Google Summer of Code 2015 for the<a
- href="http://taverna.incubator.apache.org">Apache Taverna project</a>.
+ <string name="about3">Originally developed during Google Summer of Code 2015 for the<a href="http://taverna.incubator.apache.org">Apache Taverna project</a>.
</string>
<string name="pref_category_title_player_config">Configure Player Account</string>
<string name="pref_summary_player_user">Username used to login to Taverna player portal</string>
@@ -187,8 +187,6 @@ limitations under the License.
<string name="sign_out">Sign Out</string>
<string name="sign_out_message">Do you really want to sign out?</string>
-
-
<string name="title_activity_settings">Settings</string>
<!-- Strings related to Settings -->
@@ -237,11 +235,22 @@ limitations under the License.
<string name="start">GOT IT</string>
<string name="slide_1_title">Login</string>
-
<string name="slide_2_title">Dashboard</string>
-
<string name="slide_3_title">Workflow</string>
-
<string name="slide_4_title">Menus</string>
+ <!-- Nav Header placeholders -->
+ <string name="username">Username</string>
+ <string name="email">Email</string>
+
+ <!-- User profile column titles -->
+ <string name="empty_fields"><NA></string>
+ <string name="user_name">Username</string>
+ <string name="user_email">Email</string>
+ <string name="user_website">Website</string>
+ <string name="user_city">City</string>
+ <string name="user_country">Country</string>
+ <string name="user_my_workflow">My Workflow</string>
+ <string name="user_my_favorite_workflow">Favorite Workflows</string>
+
</resources>
[2/2] incubator-taverna-mobile git commit: This Close #78
Posted by sa...@apache.org.
This Close #78
Project: http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/commit/eff63517
Tree: http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/tree/eff63517
Diff: http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/diff/eff63517
Branch: refs/heads/master
Commit: eff6351775d36c0349446665e61f67b714f07158
Parents: f997f57 e072d3b
Author: Sagar <ku...@gmail.com>
Authored: Tue Jun 5 20:10:21 2018 +0530
Committer: Sagar <ku...@gmail.com>
Committed: Tue Jun 5 20:10:21 2018 +0530
----------------------------------------------------------------------
app/build.gradle | 1 +
app/src/main/AndroidManifest.xml | 5 +-
.../mobile/data/local/PreferencesHelper.java | 2 +-
.../taverna/mobile/ui/DashboardActivity.java | 54 +++-
.../FavouriteWorkflowsActivity.java | 60 ++++
.../ui/myworkflows/MyWorkflowsActivity.java | 60 ++++
.../ui/userprofile/UserProfileActivity.java | 71 +++++
.../ui/userprofile/UserProfileFragment.java | 141 +++++++++
.../drawable/ic_account_circle_black_24dp.xml | 9 +
.../main/res/drawable/ic_email_black_24dp.xml | 9 +
.../ic_keyboard_arrow_right_black_24dp.xml | 9 +
.../res/drawable/ic_language_black_24dp.xml | 9 +
.../drawable/ic_location_city_black_24dp.xml | 9 +
.../res/drawable/ic_location_on_black_24dp.xml | 9 +
.../main/res/drawable/ic_storage_black_24dp.xml | 9 +
app/src/main/res/drawable/nav_header.png | Bin 0 -> 74018 bytes
.../res/layout/activity_favourite_workflows.xml | 33 ++
.../main/res/layout/activity_my_workflows.xml | 33 ++
.../main/res/layout/activity_user_profile.xml | 31 ++
.../main/res/layout/fragment_user_profile.xml | 317 +++++++++++++++++++
app/src/main/res/layout/nav_header.xml | 84 +++--
app/src/main/res/values/dimens.xml | 21 ++
app/src/main/res/values/strings.xml | 23 +-
23 files changed, 961 insertions(+), 38 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/eff63517/app/src/main/res/values/dimens.xml
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/eff63517/app/src/main/res/values/strings.xml
----------------------------------------------------------------------