/** * Wire * Copyright (C) 2016 Wire Swiss GmbH * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * 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 <http://www.gnu.org/licenses/>. */ package com.waz.zclient.pages.main.profile.preferences.dialogs; import android.annotation.SuppressLint; import android.content.ClipData; import android.content.ClipboardManager; import android.content.Context; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; import android.widget.Toast; import com.waz.zclient.R; import com.waz.zclient.pages.BaseDialogFragment; import com.waz.zclient.utils.ViewUtils; public class AvsOptionsDialogFragment extends BaseDialogFragment<AvsOptionsDialogFragment.Container> { public static final String TAG = AvsOptionsDialogFragment.class.getName(); private TextView loggingTextView; private TextView postSessionIdTextView; private TextView lastSessionIdTextView; ////////////////////////////////////////////////////////////////////////////////////////// // // LifeCycle // ////////////////////////////////////////////////////////////////////////////////////////// public static AvsOptionsDialogFragment newInstance() { AvsOptionsDialogFragment fragment = new AvsOptionsDialogFragment(); return fragment; } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setStyle(STYLE_NO_FRAME, R.style.Theme_Dark_Preferences); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup vcontainer, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_avs_options, vcontainer, false); loggingTextView = ViewUtils.getView(view, R.id.avs__logging); loggingTextView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { boolean updatedValue = !getStoreFactory().getZMessagingApiStore().getAvs().isLoggingEnabled(); getStoreFactory().getZMessagingApiStore().getAvs().setLoggingEnabled(updatedValue); updateButton(loggingTextView, updatedValue); } }); postSessionIdTextView = ViewUtils.getView(view, R.id.avs__post_session_id); postSessionIdTextView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { boolean updatedValue = !getControllerFactory().getUserPreferencesController().isPostSessionIdToConversation(); getControllerFactory().getUserPreferencesController().setPostSessionIdToConversation(updatedValue); updateButton(postSessionIdTextView, updatedValue); } }); lastSessionIdTextView = ViewUtils.getView(view, R.id.avs__last_session_id); final String lastCallSessionId = getControllerFactory().getUserPreferencesController().getLastCallSessionId(); lastSessionIdTextView.setText(lastCallSessionId); lastSessionIdTextView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { ClipboardManager clipboard = (ClipboardManager) getActivity().getSystemService(Context.CLIPBOARD_SERVICE); ClipData clip = ClipData.newPlainText(getString(R.string.pref_dev_avs_last_call_session_id_title), lastCallSessionId); clipboard.setPrimaryClip(clip); Toast.makeText(getActivity(), getString(R.string.pref_dev_avs_last_call_session_id_copied_to_clipboard), Toast.LENGTH_SHORT).show(); } }); return view; } @Override public void onResume() { super.onResume(); updateButton(loggingTextView, getStoreFactory().getZMessagingApiStore().getAvs().isLoggingEnabled()); updateButton(postSessionIdTextView, getControllerFactory().getUserPreferencesController().isPostSessionIdToConversation()); } @Override public void onDestroyView() { loggingTextView = null; postSessionIdTextView = null; lastSessionIdTextView = null; super.onDestroyView(); } @SuppressLint("SetTextI18n") private void updateButton(TextView button, boolean enabled) { if (button == null) { return; } // These strings are only for internal usage and should not be translated // as they are only visible to devs if (enabled) { button.setText("Enabled"); } else { button.setText("Disabled"); } } public interface Container { } }