Merge branch 'develop' into forbidden_characters_from_server
[pub/Android/ownCloud.git] / src / com / owncloud / android / ui / activity / GenericExplanationActivity.java
1 /**
2 * ownCloud Android client application
3 *
4 * @author David A. Velasco
5 * Copyright (C) 2015 ownCloud Inc.
6 *
7 * This program is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License version 2,
9 * as published by the Free Software Foundation.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program. If not, see <http://www.gnu.org/licenses/>.
18 *
19 */
20
21 package com.owncloud.android.ui.activity;
22
23 import java.util.ArrayList;
24
25 import android.content.Context;
26 import android.content.Intent;
27 import android.os.Bundle;
28 import android.support.v7.app.ActionBar;
29 import android.support.v7.app.ActionBarActivity;
30 import android.text.method.ScrollingMovementMethod;
31 import android.view.View;
32 import android.view.ViewGroup;
33 import android.widget.ArrayAdapter;
34 import android.widget.ListAdapter;
35 import android.widget.ListView;
36 import android.widget.TextView;
37
38 import com.owncloud.android.R;
39 import com.owncloud.android.utils.DisplayUtils;
40
41
42 /**
43 * Activity showing a text message and, optionally, a couple list of single or paired text strings.
44 *
45 * Added to show explanations for notifications when the user clicks on them, and there no place
46 * better to show them.
47 */
48 public class GenericExplanationActivity extends ActionBarActivity {
49
50 public static final String EXTRA_LIST = GenericExplanationActivity.class.getCanonicalName() +
51 ".EXTRA_LIST";
52 public static final String EXTRA_LIST_2 = GenericExplanationActivity.class.getCanonicalName() +
53 ".EXTRA_LIST_2";
54 public static final String MESSAGE = GenericExplanationActivity.class.getCanonicalName() +
55 ".MESSAGE";
56
57
58 @Override
59 protected void onCreate(Bundle savedInstanceState) {
60 super.onCreate(savedInstanceState);
61
62 Intent intent = getIntent();
63 String message = intent.getStringExtra(MESSAGE);
64 ArrayList<String> list = intent.getStringArrayListExtra(EXTRA_LIST);
65 ArrayList<String> list2 = intent.getStringArrayListExtra(EXTRA_LIST_2);
66
67 setContentView(R.layout.generic_explanation);
68
69 if (message != null) {
70 TextView textView = (TextView) findViewById(R.id.message);
71 textView.setText(message);
72 textView.setMovementMethod(new ScrollingMovementMethod());
73 }
74
75 ListView listView = (ListView) findViewById(R.id.list);
76 if (list != null && list.size() > 0) {
77 //ListAdapter adapter = new ArrayAdapter<String>(this,
78 // android.R.layout.simple_list_item_1, list);
79 ListAdapter adapter = new ExplanationListAdapterView(this, list, list2);
80 listView.setAdapter(adapter);
81 } else {
82 listView.setVisibility(View.GONE);
83 }
84
85 ActionBar actionBar = getSupportActionBar();
86 actionBar.setIcon(DisplayUtils.getSeasonalIconId());
87 }
88
89 public class ExplanationListAdapterView extends ArrayAdapter<String> {
90
91 ArrayList<String> mList;
92 ArrayList<String> mList2;
93
94 ExplanationListAdapterView(Context context, ArrayList<String> list,
95 ArrayList<String> list2) {
96 super(context, android.R.layout.two_line_list_item, android.R.id.text1, list);
97 mList = list;
98 mList2 = list2;
99 }
100
101 @Override
102 public boolean isEnabled(int position) {
103 return false;
104 }
105
106 /**
107 * {@inheritDoc}
108 */
109 @Override
110 public View getView (int position, View convertView, ViewGroup parent) {
111 View view = super.getView(position, convertView, parent);
112 if (view != null) {
113 if (mList2 != null && mList2.size() > 0 && position >= 0 &&
114 position < mList2.size()) {
115 TextView text2 = (TextView) view.findViewById(android.R.id.text2);
116 if (text2 != null) {
117 text2.setText(mList2.get(position));
118 }
119 }
120 }
121 return view;
122 }
123 }
124
125 }