Revert "Initial checkin of AOSP Messaging app."
This reverts commit 461a34b466.
Change-Id: Iac4ca77eeaa94989e91dead49a7959c905bd3078
This commit is contained in:
@@ -1,103 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2015 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* 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 com.android.messaging.ui.conversation;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.support.v7.app.ActionBar;
|
||||
|
||||
/**
|
||||
* The base class for a method of user input, e.g. media picker.
|
||||
*/
|
||||
public abstract class ConversationInput {
|
||||
/**
|
||||
* The host component where all input components are contained. This is typically the
|
||||
* conversation fragment but may be mocked in test code.
|
||||
*/
|
||||
public interface ConversationInputBase {
|
||||
boolean showHideInternal(final ConversationInput target, final boolean show,
|
||||
final boolean animate);
|
||||
String getInputStateKey(final ConversationInput input);
|
||||
void beginUpdate();
|
||||
void handleOnShow(final ConversationInput target);
|
||||
void endUpdate();
|
||||
}
|
||||
|
||||
protected boolean mShowing;
|
||||
protected ConversationInputBase mConversationInputBase;
|
||||
|
||||
public abstract boolean show(boolean animate);
|
||||
public abstract boolean hide(boolean animate);
|
||||
|
||||
public ConversationInput(ConversationInputBase baseHost, final boolean isShowing) {
|
||||
mConversationInputBase = baseHost;
|
||||
mShowing = isShowing;
|
||||
}
|
||||
|
||||
public boolean onBackPressed() {
|
||||
if (mShowing) {
|
||||
mConversationInputBase.showHideInternal(this, false /* show */, true /* animate */);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean onNavigationUpPressed() {
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Toggle the visibility of this view.
|
||||
* @param animate
|
||||
* @return true if the view is now shown, false if it now hidden
|
||||
*/
|
||||
public boolean toggle(final boolean animate) {
|
||||
mConversationInputBase.showHideInternal(this, !mShowing /* show */, true /* animate */);
|
||||
return mShowing;
|
||||
}
|
||||
|
||||
public void saveState(final Bundle savedState) {
|
||||
savedState.putBoolean(mConversationInputBase.getInputStateKey(this), mShowing);
|
||||
}
|
||||
|
||||
public void restoreState(final Bundle savedState) {
|
||||
// Things are hidden by default, so only handle show.
|
||||
if (savedState.getBoolean(mConversationInputBase.getInputStateKey(this))) {
|
||||
mConversationInputBase.showHideInternal(this, true /* show */, false /* animate */);
|
||||
}
|
||||
}
|
||||
|
||||
public boolean updateActionBar(final ActionBar actionBar) {
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Update our visibility flag in response to visibility change, both for actions
|
||||
* initiated by this class (through the show/hide methods), and for external changes
|
||||
* tracked by event listeners (e.g. ImeStateObserver, MediaPickerListener). As part of
|
||||
* handling an input showing, we will hide all other inputs to ensure they are mutually
|
||||
* exclusive.
|
||||
*/
|
||||
protected void onVisibilityChanged(final boolean visible) {
|
||||
if (mShowing != visible) {
|
||||
mConversationInputBase.beginUpdate();
|
||||
mShowing = visible;
|
||||
if (visible) {
|
||||
mConversationInputBase.handleOnShow(this);
|
||||
}
|
||||
mConversationInputBase.endUpdate();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user