/* * Copyright (c) 2010-2019 Belledonne Communications SARL. * * This file is part of linphone-android * (see https://www.linphone.org). * * 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 . */ package org.linphone.history; import android.app.Fragment; import android.content.Intent; import android.os.Bundle; import android.view.View; import org.linphone.LinphoneContext; import org.linphone.LinphoneManager; import org.linphone.R; import org.linphone.activities.MainActivity; import org.linphone.contacts.ContactsManager; import org.linphone.contacts.LinphoneContact; import org.linphone.core.Address; import org.linphone.utils.LinphoneUtils; public class HistoryActivity extends MainActivity { public static final String NAME = "History"; @Override protected void onCreate(Bundle savedInstanceState) { getIntent().putExtra("Activity", NAME); super.onCreate(savedInstanceState); } @Override protected void onStart() { super.onStart(); Fragment currentFragment = getFragmentManager().findFragmentById(R.id.fragmentContainer); if (currentFragment == null) { HistoryFragment fragment = new HistoryFragment(); changeFragment(fragment, "History", false); if (isTablet()) { fragment.displayFirstLog(); } } } @Override protected void onNewIntent(Intent intent) { super.onNewIntent(intent); // Clean fragments stack upon return while (getFragmentManager().getBackStackEntryCount() > 0) { getFragmentManager().popBackStackImmediate(); } } @Override protected void onResume() { super.onResume(); mHistorySelected.setVisibility(View.VISIBLE); LinphoneManager.getCore().resetMissedCallsCount(); displayMissedCalls(); LinphoneContext.instance().getNotificationManager().dismissMissedCallNotification(); } @Override protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); } @Override protected void onRestoreInstanceState(Bundle savedInstanceState) { super.onRestoreInstanceState(savedInstanceState); } @Override public void goBack() { // 1 is for the empty fragment on tablets if (!isTablet() || getFragmentManager().getBackStackEntryCount() > 1) { if (popBackStack()) { return; } } super.goBack(); } public void showHistoryDetails(Address address) { Bundle extras = new Bundle(); if (address != null) { LinphoneContact contact = ContactsManager.getInstance().findContactFromAddress(address); String displayName = contact != null ? contact.getFullName() : LinphoneUtils.getAddressDisplayName(address); String pictureUri = contact != null && contact.getPhotoUri() != null ? contact.getPhotoUri().toString() : null; extras.putString("SipUri", address.asStringUriOnly()); extras.putString("DisplayName", displayName); extras.putString("PictureUri", pictureUri); } HistoryDetailFragment fragment = new HistoryDetailFragment(); fragment.setArguments(extras); changeFragment(fragment, "History detail", true); } }