1 /*
2  * Copyright (C) 2014 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package com.example.android.google.wearable.watchviewstub;
18 
19 import android.app.Activity;
20 import android.os.Bundle;
21 import android.support.v4.view.GestureDetectorCompat;
22 import android.support.wearable.view.DismissOverlayView;
23 import android.support.wearable.view.WatchViewStub;
24 import android.view.GestureDetector;
25 import android.view.MotionEvent;
26 import android.view.View;
27 import android.view.animation.Animation;
28 import android.view.animation.ScaleAnimation;
29 import android.widget.RelativeLayout;
30 
31 public class MainActivity extends Activity {
32     private RelativeLayout mRectBackground;
33     private RelativeLayout mRoundBackground;
34 
35     private GestureDetectorCompat mGestureDetector;
36     private DismissOverlayView mDismissOverlayView;
37 
38     @Override
onCreate(Bundle b)39     public void onCreate(Bundle b) {
40         super.onCreate(b);
41         setContentView(R.layout.main_activity);
42 
43         WatchViewStub stub = (WatchViewStub) findViewById(R.id.stub);
44         stub.setOnLayoutInflatedListener(new WatchViewStub.OnLayoutInflatedListener() {
45             @Override
46             public void onLayoutInflated(WatchViewStub stub) {
47                 mRectBackground = (RelativeLayout) findViewById(R.id.rect_layout);
48                 mRoundBackground = (RelativeLayout) findViewById(R.id.round_layout);
49             }
50         });
51 
52         mDismissOverlayView = (DismissOverlayView) findViewById(R.id.dismiss_overlay);
53         mGestureDetector = new GestureDetectorCompat(this, new LongPressListener());
54     }
55 
56     /**
57      * Animates the layout when clicked. The animation used depends on whether the
58      * device is round or rectangular.
59      */
onLayoutClicked(View view)60     public void onLayoutClicked(View view) {
61         if (mRectBackground != null) {
62             ScaleAnimation scaleAnimation = new ScaleAnimation(1.0f, 0.7f, 1.0f, 0.7f,
63                     Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
64             scaleAnimation.setDuration(300);
65             scaleAnimation.setRepeatCount(1);
66             scaleAnimation.setRepeatMode(Animation.REVERSE);
67             mRectBackground.startAnimation(scaleAnimation);
68         }
69         if (mRoundBackground != null) {
70             mRoundBackground.animate().rotationBy(360).setDuration(300).start();
71         }
72     }
73 
74     @Override
dispatchTouchEvent(MotionEvent event)75     public boolean dispatchTouchEvent(MotionEvent event) {
76         return mGestureDetector.onTouchEvent(event) || super.dispatchTouchEvent(event);
77     }
78 
79     private class LongPressListener extends GestureDetector.SimpleOnGestureListener {
80         @Override
onLongPress(MotionEvent event)81         public void onLongPress(MotionEvent event) {
82             mDismissOverlayView.show();
83         }
84     }
85 }
86