/****************************************************************************** * * Copyright 2014 Paphus Solutions Inc. * * Licensed under the Eclipse Public License, Version 1.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.eclipse.org/legal/epl-v10.html * * 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.botlibre.sdk.activity; import java.util.ArrayList; import java.util.List; import org.botlibre.sdk.activity.actions.HttpAction; import org.botlibre.sdk.activity.actions.HttpGetAdminsAction; import org.botlibre.sdk.activity.actions.HttpGetImageAction; import org.botlibre.sdk.activity.actions.HttpGetUsersAction; import org.botlibre.sdk.activity.actions.HttpUserAdminAction; import org.botlibre.sdk.config.UserAdminConfig; import org.botlibre.sdk.config.WebMediumConfig; import org.botlibre.sdk.R; import android.os.Bundle; import android.view.View; import android.widget.ArrayAdapter; import android.widget.EditText; import android.widget.ListView; import android.widget.TextView; /** * Generic activity for administering a content's users. */ public abstract class WebMediumUsersActivity extends LibreActivity { public List<String> users = new ArrayList<String>(); public List<String> admins = new ArrayList<String>(); public abstract String getType(); @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_users); HttpGetImageAction.fetchImage(this, MainActivity.instance.avatar, findViewById(R.id.icon)); WebMediumConfig instance = MainActivity.instance.credentials(); HttpAction action = new HttpGetUsersAction(this, instance); action.execute(); action = new HttpGetAdminsAction(this, instance); action.execute(); } @SuppressWarnings({ "unchecked", "rawtypes" }) public void resetView() { ListView list = (ListView) findViewById(R.id.usersList); ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, this.users.toArray()); list.setAdapter(adapter); list = (ListView) findViewById(R.id.adminList); adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, this.admins.toArray()); list.setAdapter(adapter); } public void addUser(View view) { UserAdminConfig config = new UserAdminConfig(); config.instance = MainActivity.instance.id; config.type = getType(); config.operation = "AddUser"; EditText text = (EditText) findViewById(R.id.userText); config.operationUser = text.getText().toString().trim(); if (config.operationUser.length() == 0) { MainActivity.error("Enter user to add", null, this); return; } HttpUserAdminAction action = new HttpUserAdminAction(this, config); action.execute(); } public void removeUser(View view) { UserAdminConfig config = new UserAdminConfig(); config.instance = MainActivity.instance.id; config.type = getType(); config.operation = "RemoveUser"; ListView list = (ListView) findViewById(R.id.usersList); int index = list.getCheckedItemPosition(); if (index < 0) { MainActivity.error("Select user to remove", null, this); return; } config.operationUser = (String)this.users.get(index); HttpUserAdminAction action = new HttpUserAdminAction(this, config); action.execute(); } public void addAdmin(View view) { UserAdminConfig config = new UserAdminConfig(); config.instance = MainActivity.instance.id; config.type = getType(); config.operation = "AddAdmin"; EditText text = (EditText) findViewById(R.id.adminText); config.operationUser = text.getText().toString().trim(); if (config.operationUser.length() == 0) { MainActivity.error("Enter admin to add", null, this); return; } HttpUserAdminAction action = new HttpUserAdminAction(this, config); action.execute(); } public void removeAdmin(View view) { UserAdminConfig config = new UserAdminConfig(); config.instance = MainActivity.instance.id; config.type = getType(); config.operation = "RemoveAdmin"; ListView list = (ListView) findViewById(R.id.adminList); int index = list.getCheckedItemPosition(); if (index < 0) { MainActivity.error("Select admin to remove", null, this); return; } config.operationUser = (String)this.admins.get(index); HttpUserAdminAction action = new HttpUserAdminAction(this, config); action.execute(); } }