/**
* ownCloud Android client application
*
* @author David A. Velasco
* Copyright (C) 2015 ownCloud Inc.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2,
* as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*
*/
package com.owncloud.android.ui.activity;
import java.util.ArrayList;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatActivity;
import android.text.method.ScrollingMovementMethod;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.TextView;
import com.owncloud.android.R;
import com.owncloud.android.utils.DisplayUtils;
/**
* Activity showing a text message and, optionally, a couple list of single or paired text strings.
*
* Added to show explanations for notifications when the user clicks on them, and there no place
* better to show them.
*/
public class GenericExplanationActivity extends AppCompatActivity {
public static final String EXTRA_LIST = GenericExplanationActivity.class.getCanonicalName() +
".EXTRA_LIST";
public static final String EXTRA_LIST_2 = GenericExplanationActivity.class.getCanonicalName() +
".EXTRA_LIST_2";
public static final String MESSAGE = GenericExplanationActivity.class.getCanonicalName() +
".MESSAGE";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent intent = getIntent();
String message = intent.getStringExtra(MESSAGE);
ArrayList list = intent.getStringArrayListExtra(EXTRA_LIST);
ArrayList list2 = intent.getStringArrayListExtra(EXTRA_LIST_2);
setContentView(R.layout.generic_explanation);
if (message != null) {
TextView textView = (TextView) findViewById(R.id.message);
textView.setText(message);
textView.setMovementMethod(new ScrollingMovementMethod());
}
ListView listView = (ListView) findViewById(R.id.list);
if (list != null && list.size() > 0) {
//ListAdapter adapter = new ArrayAdapter(this,
// android.R.layout.simple_list_item_1, list);
ListAdapter adapter = new ExplanationListAdapterView(this, list, list2);
listView.setAdapter(adapter);
} else {
listView.setVisibility(View.GONE);
}
ActionBar actionBar = getSupportActionBar();
actionBar.setIcon(DisplayUtils.getSeasonalIconId());
}
public class ExplanationListAdapterView extends ArrayAdapter {
ArrayList mList;
ArrayList mList2;
ExplanationListAdapterView(Context context, ArrayList list,
ArrayList list2) {
super(context, android.R.layout.two_line_list_item, android.R.id.text1, list);
mList = list;
mList2 = list2;
}
@Override
public boolean isEnabled(int position) {
return false;
}
/**
* {@inheritDoc}
*/
@Override
public View getView (int position, View convertView, ViewGroup parent) {
View view = super.getView(position, convertView, parent);
if (view != null) {
if (mList2 != null && mList2.size() > 0 && position >= 0 &&
position < mList2.size()) {
TextView text2 = (TextView) view.findViewById(android.R.id.text2);
if (text2 != null) {
text2.setText(mList2.get(position));
}
}
}
return view;
}
}
}