189fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project/*
289fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project * Copyright (C) 2014 The Android Open Source Project
389fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project *
489fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License");
589fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project * you may not use this file except in compliance with the License.
689fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project * You may obtain a copy of the License at
789fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project *
889fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project *      http://www.apache.org/licenses/LICENSE-2.0
989fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project *
1089fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project * Unless required by applicable law or agreed to in writing, software
1189fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS,
1289fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1389fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project * See the License for the specific language governing permissions and
1489fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project * limitations under the License.
1589fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project */
1689fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project
1789fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Projectpackage android.bluetooth.client.map;
1889fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project
1989fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Projectimport java.io.IOException;
2089fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project
2189fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Projectimport javax.obex.ClientSession;
2289fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Projectimport javax.obex.HeaderSet;
2389fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Projectimport javax.obex.ResponseCodes;
2489fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project
2589fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Projectclass BluetoothMasRequestSetPath extends BluetoothMasRequest {
2689fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project
2789fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project    enum SetPathDir {
2889fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project        ROOT, UP, DOWN
2989fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project    };
3089fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project
3189fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project    SetPathDir mDir;
3289fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project
3389fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project    String mName;
3489fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project
357562408b2261d38415453378b6188f74fda99d88Mathias Agopian    public BluetoothMasRequestSetPath(String name) {
367562408b2261d38415453378b6188f74fda99d88Mathias Agopian        mDir = SetPathDir.DOWN;
377562408b2261d38415453378b6188f74fda99d88Mathias Agopian        mName = name;
3889fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project
3989fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project        mHeaderSet.setHeader(HeaderSet.NAME, name);
4089fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project    }
4189fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project
4289fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project    public BluetoothMasRequestSetPath(boolean goRoot) {
4389fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project        mHeaderSet.setEmptyNameHeader();
4489fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project        if (goRoot) {
4589fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project            mDir = SetPathDir.ROOT;
4689fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project        } else {
4789fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project            mDir = SetPathDir.UP;
4889fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project        }
4989fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project    }
5089fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project
5189fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project    @Override
5289fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project    public void execute(ClientSession session) {
5389fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project        HeaderSet hs = null;
5489fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project
5589fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project        try {
5689fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project            switch (mDir) {
57c2f1f07084818942352c6bbfb36af9b6b330eb4eEric Laurent                case ROOT:
5889fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project                case DOWN:
5989fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project                    hs = session.setPath(mHeaderSet, false, false);
6089fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project                    break;
6189fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project                case UP:
6289fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project                    hs = session.setPath(mHeaderSet, true, false);
6389fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project                    break;
6489fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project            }
65c2f1f07084818942352c6bbfb36af9b6b330eb4eEric Laurent
6689fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project            mResponseCode = hs.getResponseCode();
6789fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project        } catch (IOException e) {
6889fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project            mResponseCode = ResponseCodes.OBEX_HTTP_INTERNAL_ERROR;
6989fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project        }
7089fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project    }
7189fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project}
7289fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project